Symfony property_path在升级到2.8后无法正常工作


Symfony property_path not working properly after upgrade to 2.8

我正在从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;
}