$ form-> bind更改我的$ entity值

时间:2013-05-21 13:39:17

标签: php forms symfony

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

  

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

     

$实体 - > setParam2( '你好');
  后续代码var_dump($实体); // dispaly entity params with param2'hello'

     

$ editForm = $ this-> createForm(new YYFormType($ em),$ entity);

  后续代码var_dump($实体); // dispaly entity params with param2'hello'

     

$ editForm->绑定($请求);
   后续代码var_dump($实体); //显示实体参数与param2 null

我不明白为什么会这样做。

就像实体上的每个更改都是通过引用完成的。

这是正常的吗?

非常感谢

1 个答案:

答案 0 :(得分:2)

它通常使用您的请求对象给出的表单值绑定给定实体。

如果你做了

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

动作意味着您使用表单值“保湿”您的实体。在这种情况下,表单中的param2值也必须为null。

如果是这种情况,这种行为是正常的。

如果您执行

$entity->setParam2('hello');

之后

$yourForm->bind(...);

那么你的param2现在应该是“你好”。