gpt4 book ai didi

symfony-forms - 当使用 Symfony2.1 表单时,我应该在什么时候将基于表单值的自定义数据(一个对象)绑定(bind)到我的表单对象?

转载 作者:行者123 更新时间:2023-12-02 00:19:34 26 4
gpt4 key购买 nike

鉴于以下情况,我应该在哪里放置将 Department 绑定(bind)到 Review 的逻辑:

实体:

  • 经销商(有很多部门)
  • 部门(只有一种类型)
  • 部门类型
  • 审核(有一个经销商和一个部门)

在我的 ReviewForm 上,我需要用户能够选择 Dealership 和 DepartmentType,然后以某种形式的回调或预/后绑定(bind),从他们那里计算出哪个部门要绑定(bind)到 Review。

我还需要在验证之前进行此操作,以便我可以验证该部门是经销商的子级。

注意:当审查可能只与部门相关时,审查与经销商和部门相关,以简化我正在进行的遍历和其他逻辑。


到目前为止,我尝试了两种方法,但都遇到了死胡同/困惑。

  • 表单上 DepartmentType 上的 DataTransformer,不确定我是否理解正确,我的 transform/reverseTransform 方法在 Review 对象中传递,而不是在字段对象中传递。
  • PRE_BIND,发生在验证之前,但我只有原始数据可以使用,没有对象
  • POST_BIND,验证后发生:(

对于关系验证的最后一步,我有一个相对简单的验证器来完成这项工作,但我不确定我打算在什么时候像这样将数据绑定(bind)到对象。有什么指点吗?

最佳答案

由于验证也在 POST_BIND 监听器中完成,您可以简单地添加优先级高于验证监听器的 POST_BIND 监听器(即任何 > 0)。

如果你正在写一个监听器:

$builder->addEventListener(FormEvents::POST_BIND, $myListener, 10);

如果你正在写一个订阅者:

public static function getSubscribedEvents()
{
return array(
FormEvents::POST_BIND => array('postBind', 10),
);
}

public function postBind(FormEvent $event)
{
...
}

关于symfony-forms - 当使用 Symfony2.1 表单时,我应该在什么时候将基于表单值的自定义数据(一个对象)绑定(bind)到我的表单对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11520994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com