在formtype中:
$builder
->add('tarifaReexpedicion', EntityType::class, array(
'class' => 'AppBundle:SubtarifaReexpedicion',
'label' => false,
'choice_label' => 'nombre',
'placeholder' => 'Elige una subtarifa...',
));
在父类Subtarifa
中有一个名为nombre
的属性,其中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"})
欢迎任何帮助!
答案 0 :(得分:1)
在此代码中:
->add('tarifaReexpedicion', EntityType::class, array(
'class' => 'AppBundle:SubtarifaReexpedicion',
'label' => false,
'choice_label' => 'nombre',
'placeholder' => 'Elige una subtarifa...',
));
您正在使用AppBundle:SubtarifaReexpedicion实体,您所需的choice_label为nombre
,因此请确保getNombre()
类中有AppBundle:SubtarifaReexpedicion
方法。
choice_label
基本上会调用回调,就好像你这样做:
'choice_label' => function ($tarifaReexpedicion) {
return $tarifaReexpedicion->getNombre();
}