Symfony选择类型数组错误:无法转换属性路径的值:预期数组

时间:2015-07-28 20:32:16

标签: php symfony

为什么我将此表单选项设置为多个时出错。这将直接来自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;

2 个答案:

答案 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']),
));