我正在使用Symfony3,在为EntityType::class创建表单时遇到以下错误
我的实体命名空间Project\CoreBundle\ entity \CountryEntity
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, ['label' => 'Name *', 'attr' => ['data-help' => 'enter language name here.']])
->add('iso', TextType::class, ['label' => 'ISO *', 'attr' => ['data-help' => 'enter language code here.']])
->add('defaultLanguage', EntityType::class,
array(
'class' => 'Project\CoreBundle\Entity\CountryEntity'
)
)
->getForm();
;
}抛出可捕获的致命错误:类Project\CoreBundle\Entity\CountryEntity的对象无法转换为字符串
任何帮助都将是有用的,谢谢
发布于 2016-09-04 02:56:46
因为EntityType是ChoiceType的扩展,所以它需要知道如何将实体呈现到表单中。如果您不传递任何信息,它将尝试使用__toString()方法。如果它没有被定义,你会得到这个错误。
您可以为您的字段指定choice_label选项,而不是实现__toString(),该选项应该是应该显示的属性的路径规范。例如,您的CountryEntity类可能具有name属性:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, ['label' => 'Name *', 'attr' => ['data-help' => 'enter language name here.']])
->add('iso', TextType::class, ['label' => 'ISO *', 'attr' => ['data-help' => 'enter language code here.']])
->add('defaultLanguage', EntityType::class,
array(
'class' => 'Project\CoreBundle\Entity\CountryEntity',
'choice_label' => 'name'
)
)
->getForm();
;
}另请参阅http://symfony.com/doc/current/reference/forms/types/entity.html上的EntityType文档。
诚挚的问候
https://stackoverflow.com/questions/39310252
复制相似问题