2017-03-09 52 views
0

在formtype:Symfony的形式不加載選擇題的選項

$builder 
    ->add('tarifaReexpedicion', EntityType::class, array(
     'class' => 'AppBundle:SubtarifaReexpedicion', 
     'label' => false, 
     'choice_label' => 'nombre', 
     'placeholder' => 'Elige una subtarifa...', 
    )); 

Subtarifa父類中有一個名爲​​屬性,與的getName和setName ......一切權利。 子類是SubtarifaReexpedicion

在此代碼時,我改變'class' => 'AppBundle:Subtarifa'一切工作正常,它加載所有選項(全部,而不是子類的特定選項)。

父實體的配置(Subtarifa):

* @ORM\Entity 
* @ORM\Table(name="subtarifas") 
* @ORM\InheritanceType("JOINED") 
* @ORM\DiscriminatorColumn(name="discr", type="string") 
* @ORM\DiscriminatorMap({"FLETE" = "SubtarifaFlete", "REEXP" = "SubtarifaReexpedicion", "MASALLA" = "SubtarifaMasalla"}) 

歡迎任何幫助!

回答

1

在此代碼:

->add('tarifaReexpedicion', EntityType::class, array(
    'class' => 'AppBundle:SubtarifaReexpedicion', 
    'label' => false, 
    'choice_label' => 'nombre', 
    'placeholder' => 'Elige una subtarifa...', 
)); 

您正在使用的appbundle:SubtarifaReexpedicion實體和所需CHOICE_LABEL是​​,所以要確保有在AppBundle:SubtarifaReexpediciongetNombre()方法。

choice_label基本要求,如果你做這樣的回調:

'choice_label' => function ($tarifaReexpedicion) { 
    return $tarifaReexpedicion->getNombre(); 
} 
+0

的感謝!有用 – jmunozco