Symfony 2 Crea un field module entity framework; con 2 properties;

Sto usando symfony2 e ho un module per salvare la relazione di un utente con alcune regole. Queste regole sono definite dall'utente amministratore della società. In questo module, dopo aver selezionato un utente da aggiornare, devo select quale regola questo utente ha il permesso.

Il problema è che potrei avere più di una regola con lo stesso nome (è un'altra entity framework;) ma i valori sono diversi. Quindi, quando costruisco la selectbox, devo mostrare il nome e il valore come:

  1. Quantità di articoli – 10
  2. Quantità di articoli – 20
  3. Valore dell'articolo – 200
  4. Valore dell'articolo – 500

Ma ora posso solo mostrare senza "- $ value" usando il codice seguente:

$form = $this->createFormBuilder()->add('myinput', 'entity', arrays( 'class' => 'myBundle:Rule', 'property' => 'childEntity.name', 'label' => 'Filas Permitidas', 'expanded' => false, 'multiple' => true, 'choices' => $this->getDoctrine() ->getRepository('MyBundle:Rule') ->findAll(), 'required' => true, ))->getForm(); 

Quindi, come properties;, volevo get $myEntity->getChildEntity()->getName() e $myEntity->getValue() .

C'è un modo per farlo?

Sì, definisci un metodo getUniqueName() nella class entity come:

 public function getUniqueName() { return sprintf('%s - %s', $this->name, $this->value); } 

E modifica l'opzione del module di property :

 'property' => 'childEntity.uniqueName', 

Puoi anche omettere l'opzione property e definire il metodo __toString() stesso modo per non ripetere l'impostazione dell'opzione property in each form.