2017-05-09 4 views
0

Ich habe derzeit ein funktionierendes Formular in Symfony, wo ich eine Liste von Unternehmen mit Kontrollkästchen neben jedem Firmennamen haben. So können Sie abhaken, welche Firma jedem Benutzer zugeordnet ist. Die Checkbox zeigt derzeit die accountID an, aber es wäre auch hilfreich, das Entity-Feld 'name' zu haben. Können Sie eine Eigenschaft mit zwei Entitätsfeldern erstellen? Hier ist meine Form in meinem Controller:Ändern der Bezeichnung für symfony generierte Form

->add('companies', 'entity', array(
      'label'   => 'Company', 
      'class'   => 'Default\Bundle\Entity\Customer', 
      'property' => 'accountId', //This puts the company id next to the check box 
      'multiple'  => true, 
      'expanded'  => true, 
      'query_builder' => function ($repository) 
       { 
        return $repository->createQueryBuilder('c')->orderBy('c.accountId', 'ASC'); 
       },)) 
     ->add('Save', 'submit') 
     ->getForm(); 

Dies ist, was ich zu tun versucht:

->add('companies', 'entity', array(
     'label'   => 'Company', 
     'class'   => 'Default\Bundle\Entity\Customer', 
     'property' => 'accountId' + 'name', // I want to combine my entity fields here 
     'multiple'  => true, 
     'expanded'  => true, 
     'query_builder' => function ($repository) 

hier ist das Unternehmen nur als Referenz

class Customer 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @Assert\NotBlank(message="Please enter a Customer ID.") 
    * @Assert\Length(max="32") 
    * @ORM\Column(type="string", length=32) 
    * @var string 
    */ 
    protected $accountId; 

    /** 
    * @Assert\NotBlank(message="Please enter a company name.") 
    * @Assert\Length(max="60") 
    * @ORM\Column(type="string", length=60) 
    * @var string 
    */ 
    protected $name; 

Und ein letztes Mal. .. Ich möchte von diesem gehen:

Original

Um dies:

New

Antwort

2

Erstellen Sie eine einfache Getter und verwenden, die als Eigenschaft, zB:

public function getNamePlusAccountId() 
{ 
    return $this->name." (".$this->accountId.")"; 
} 

und 'property' => 'namePlusAccountId' in Ihrem Formular.

+0

suchen Sie Awesome! Ich wusste nicht, dass ich beim Erstellen des Formulars auf Funktionen verweisen konnte. Ich nahm an, dass es eine Variable der Klasse sein musste. –