2016-10-23 5 views
0

Ich habe zwei Entitäten mit einigen Eigenschaften:symfony Form mit Entitätstyp Feld und mehrere Entitäten

  1. Kategorie
    • Kategorienamen
    • Kategorie Beschreibung
  2. Unter
    • Unterkategorie ry Name
    • Subkategorie Beschreibung
    • Kategorie-ID (ManyToOne Beziehung)

Es gibt eine ManyToOne Beziehung in der Unterkategorie Einheit heißt mehrere Unterkategorien einer Kategorie verbunden werden kann.

Ich möchte ein Formular mit einem Drop-Down bauen alle Unterkategorien Auflistung, aber ich möchte den Namen der Kategorie und Unterkategorie angezeigt werden, würde die Liste wie so aussehen:

  • Category1 - Subcategory1
  • Category1 - Subcategory2
  • Category1 - Subcategory3
  • Category2 - Subcategory1
  • Category2 - Subcategory2
  • Category2 - Subcategory3
  • etc ...

Ich denke über einen Getter in der Unterkategorie Klasse erstellen, die eine Verkettung der Kategorienamen und Unterkategorienamen, so etwas wie sprintf ("% s zurückkehren würde - % s ', $ this-> categoryName, $ this-> subcategoryName), aber ich kann nicht sehen, wie ich mit der Unterkategorie Klasse Getter auf Category-Objekteigenschaften zugreifen könnte ...

Eine Idee über die beste Praxis zu erreichen Dies?

Danke, JM

Antwort

3

ich es geschafft, dies zu tun, indem Sie das Formular Aufbau wie so:

 $builder 
     ->add('subcategoryName', EntityType::class, array(
      'class' => 'AppBundle:subcategory', 
      'query_builder' => function(EntityRepository $er) { 
      return $er->createQueryBuilder('u') 
       ->addSelect('t') 
       ->join('u.category', 't') 
       ->orderBy('t.category', 'ASC') 
       ->addOrderBy('u.subcategory', 'ASC'); 
      }, 
      'choice_label' => function($subcategoryname){ 
      return $categoryname->getcategory()->getcategoryname() . " - " . $subcategoryname->getsubcategoryName(); 
      }, 
      'multiple' => false, 
      'expanded' => false, 
      )) 

ich nur ein wenig mit dem choice_label Option strugling.

/JM

Verwandte Themen