在symfony上得到错误:“类型为”AppBundle \ Entity \ Magasin \ Caracteristique \ ChoixCaracteristique“的预期参数”,“字符串”给出“

时间:2018-03-01 10:08:43

标签: symfony

我的格式为$form->add('choix',ChoiceType::class, array( 'choices' => $voila , 'multiple'=>false,'label'=>$nom,'expanded'=>true)); 的返回码有问题:

public function 
setChoix(\AppBundle\Entity\Magasin\Caracteristique\ChoixCaracteristique 
$choix = null)
{
   $this->choix = $choix;
   return $this;
}

此代码调用实体中的setChoix()函数:

$form->add('choix', EntityType::class, array(
           'class' => 'AppBundle:Magasin\Caracteristique\ChoixCaracteristique',
           'choices' => $choix,
           'placeholder' => 'Choix',
           'label' => $label,
           'required' => false
        )); 

之前,我没有使用ChoiceType而是使用EntityType,因此,它起作用了:

AppBundle:Magasin\Caracteristique\ChoixCaracteristique

我的问题是“

如何CAST ChoiceType以避免类型问题 (EntityType使用{{1}}类型,因此可以使用)

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

为什么要将ChoiceType用于实体?真奇怪。 :)

如果您想使用ChoiceType,可以在提交后ChoixCaracteristique权限中使用DataTransformer进行转换选择:https://symfony.com/doc/current/form/data_transformers.html

答案 1 :(得分:0)

在我的EntityType中,我只是添加了这些选项:

'multiple' => false,
'expanded' => true,

让它发挥作用