0

bind メソッドに問題があります。正常な動作ではないと思います。私の $entity 変数は、フォームの bind メソッドの後、以前に設定されたプロパティを失います。

$entity = $em->getRepository('XX:YY')->findOne();
var_dump($エンティティ); // param2 null でエンティティ パラメータを表示する

$entity->setParam2('こんにちは');
var_dump($エンティティ); // param2 'hello' でエンティティ パラメータを表示します

$editForm = $this->createForm(new YYFormType($em), $entity);
var_dump($エンティティ); // param2 'hello' でエンティティ パラメータを表示します

$editForm->bind($request);
var_dump($エンティティ); // param2 nullでエンティティ パラメータを表示する

なぜそれをするのか理解できません。

エンティティのすべての変更が参照によって行われるようです。

正常ですか?

どうもありがとう

4

1 に答える 1

2

通常、指定されたエンティティを、リクエスト オブジェクトによって指定されたフォーム値にバインドします。

あなたがする場合

$yourForm = $this->createForm(new YYFormType($em), $entity);
$yourForm->bind(...);

action は、フォームの値でエンティティを「水和」していることを意味します。この場合、フォームの param2 値も null でなければなりません。

その場合、この動作は正常です。

実行する場合

$entity->setParam2('hello');

後に

$yourForm->bind(...);

次に、param2 が「hello」になるはずです。

于 2013-05-21T14:25:16.500 に答える