我已设置语言级别集合类型:
用户面对许多文本字段,他可以用某些语言指定他的级别。
$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;
}
实例化实体时,语言字段在构造函数中用空字符串初始化。
在表单页面中,我收到上面提到的错误。
答案 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可以很好地工作。