为什么我得到一个错误与此形式的选择设置为多个。这是直接来自symfonys网站。所有我改变的是变量名。
$builder->add('genre', 'choice', array(
'choices' => array(
'x' => 'x',
'y' => 'y',
'z' => 'z',
),
'multiple' => true,
));
这是错误:
无法转换属性路径"genre"的值:应为数组。
下面是这个变量的实体类:
/**
* @var string
*
* @ORM\Column(name="genre", type="text", nullable=true)
*/
private $genre;
4条答案
按热度按时间mcvgt66p1#
我可以确认qooplmao的评论解决了这个问题:
问题是您的实体字段
$genre
没有定义为array
,而是定义为string
。但是当启用多个选项时,表单字段将提供
array
作为结果,而不是字符串。因此,您可以:
genre
Map为array
而不是string
multiple
设置为false禁用多个选项在这个特定的问题中,我猜您希望将
genre
Map为array
。g9icjywg2#
我的解决方案绕过错误,只是使用此代码.
用爆炸来解决你的问题
即时使用|您可以更换的分离器|通过,
下的示例代码
bfnvny8b3#
我用“数据”选项解决问题
我使用的是按位标记,所以数据库类型是int,屏幕信息是一个有很多复选框的复选框。
使用“数据”,我可以对Symfony说我将使用什么类型的数据,一切都正常。
mmvthczy4#
公共函数getGenre():数组{...