0

我的绑定方法有问题,我认为这不是正常行为。我的 $entity 变量在表单的绑定方法之后释放了之前设置的属性。

$entity = $em->getRepository('XX:YY')->findOne();
var_dump($实体); //用param2 null显示实体参数

$entity->setParam2('hello');
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 现在应该是“你好”。

于 2013-05-21T14:25:16.500 回答