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

时间:2016-05-11 10:10:58

标签: php forms symfony symfony-forms

我正在从Symfony 2.7迁移到2.8。

我的模型有字段$ text,它是数组并且有一个setter:

public function setText(array $text)
{
    $this->$text = $text;

    return $this;
}

我尝试保存的文字有两个不同语言的字段(FormType part bellow):

$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'语言覆盖字段中的值)。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

你可以这样做(如果你恢复到旧的Symfony版本:):)

public function setText(array $text)
{
    foreach ($text as $key => $value) {
    $this->$text[$key] = $value;
    }

    return $this;
}