【问题标题】:$form->bind change my $entity values$form->bind 更改我的 $entity 值
【发布时间】:2013-05-16 07:25:34
【问题描述】:

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

$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

显示实体参数

我不明白为什么会这样。

就像对实体的每一次更改都是通过引用完成的。

正常吗?

非常感谢

【问题讨论】:

  • request中param2的值是多少?

标签: php forms symfony


【解决方案1】:

它通常将给定实体与表单值绑定,这些值由您的请求对象给定。

如果你做一个

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

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

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

如果你执行了

$entity->setParam2('hello');

之后

$yourForm->bind(...);

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

【讨论】:

    猜你喜欢
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多