无法解析属性路径" data.languages。[french]"。意外的令牌"。" - Symfony错误

时间:2014-12-18 21:31:46

标签: symfony validation

我已设置语言级别集合类型:

用户面对许多文本字段,他可以用某些语言指定他的级别。

$builder->add('languages', 'collection', array(
    'type' => 'text',                    
));

然后在实体中:

* @Assert\Collection(
*     fields={
*         "french"  = @Assert\Required(),
*         "english" = @Assert\Required()
*     },
*     allowExtraFields = true
* )
*/
private $languages;

相应的变异者:

public function getLanguages()
{
    return $this->languages;
}

public function setLanguages($languages)
{
    $this->languages= $languages;

    return $this;
}

实例化实体时,语言字段在构造函数中用空字符串初始化。

在表单页面中,我收到上面提到的错误。

3 个答案:

答案 0 :(得分:0)

您需要使用data.languages.french而不是data.languages.[french]

答案 1 :(得分:0)

检查你的观点。我想你应该试试这个:

{% if data.languages is not empty %} {{data.languages['frensh']}} {% endif %}

答案 2 :(得分:0)

我通过将Symfony从2.5版升级到2.6版来解决了这个问题。 现在,注释约束@Assert \ Collection可以很好地工作。