1
私はSymfony 2.7から2.8への移行を行っています。Symfony property_pathが2.8へのアップグレード後に正しく動作しない
私のモデルが配列であるとセッターを持つフィールド$テキストを持っている:私は保存しようとしている
public function setText(array $text)
{
$this->$text = $text;
return $this;
}
テキストは、異なる言語(にformType部分怒鳴る)のための2つのフィールドがあります。
$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は各フィールドに対して2回起動します。結果は$ textは両方のフィールドではなく、 (2回目は 'en'言語のフィールド値を上書きします)。助言がありますか?
あなたは(あなたが戻って古いsymfonyのバージョン:)に戻す場合には)このようにそれを行うことができます
私はこのソリューションを避けるためにしようとしているが、そこになります場合、私はそれを使用しますオプションが残っていません –
なぜですか?あなたのコードはそれを使用するよう強制します。通常は、再利用可能でないフォームを使用するのではなく、翻訳可能なエンティティ/ドキュメントを実装する必要があります。追加の言語を追加する場合は、すべてのコードを変更する必要があるとします。 – malcolm
上記のコードは簡略化されています。私は実際にループ内にフィールドを追加しています。 –