为什么我将此表单选项设置为多个时出错。这将直接来自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;
答案 0 :(得分:1)
我可以确认qooplmao的评论解决了这个问题:
问题在于,您的实体字段$genre
不会被视为array
,而是string
。
但是,如果启用了多个选项,则表单字段将提供array
作为结果,而不是字符串。
所以你可以:
genre
映射为array
,而不是string
multiple
设置为false 我这个具体问题我想你想将genre
映射为array
。
答案 1 :(得分:0)
我针对旁路错误的解决方案,请使用此代码。
explode("|",$response['quest1'])
使用爆炸解决您的问题
我正在使用|你可以替换的分隔符|通过,
下面的示例代码
$builder->add('genre', 'choice', array(
'choices' => array(
'x' => 'x',
'y' => 'y',
'z' => 'z',
),
'multiple' => true,
explode("|",$response['genre']),
));