我正在从Symfony 2.7迁移到2.8。
我的模型有一个字段$text,它是数组,并有一个setter:
public function setText(array $text)
{
$this->$text = $text;
return $this;
}
我试图保存的文本有两个不同语言的字段(FormType部分如下):
$builder->add('text_en', 'text', array(
'required' => false,
'property_path' => 'text[en]'
));
$builder->add('text_pl', 'text', array(
'required' => false,
'property_path' => 'text[pl]'
));
在Symfony 2.7上,一切都很好(setter使用两个字段的值触发一次),但在升级到2.8后,setter为每个字段触发两次,结果是$text只有第二个字段中的值,而不是两个字段都有值(第二次它用'en'语言覆盖字段中的数值)。有什么建议吗?
您可以这样做(以防恢复到较旧的Symfony版本:):
public function setText(array $text)
{
foreach ($text as $key => $value) {
$this->$text[$key] = $value;
}
return $this;
}