【问题标题】:Get request data (GET) in a Symfony (5) formType without using data_class不使用 data_class 在 Symfony (5) formType 中获取请求数据 (GET)
【发布时间】:2020-10-02 07:54:42
【问题描述】:

我正在构建一个 formType 来过滤集合页面上的产品。您可以设置多个选择框,使其他自动填充或不必要。我希望能够像使用 data_class 对象时那样根据数据操作 formType。我没有使用 data_class 因为搜索不是保存到数据库的持久对象。我正在使用 GET 表单。

例如 2 个选择框:

  • 类别
  • 产品类型

当设置一个类别时,一些 productTypes 是不必要的。所以我不想展示它。 要在 formType 中这样做,我需要请求的数据 (GET),但我找不到这样做的方法。

【问题讨论】:

    标签: symfony


    【解决方案1】:

    要从表单中检索数据,您可以使用$form->getData()
    当您处于GET 上下文中时,我怀疑您可以利用FormEvents(仔细查看POST_SET_DATA 事件)并摆脱不需要的值。

    我想指出的另一件事是,您仍然可以使用某种未持久化到 DB 的对象,例如 DTO 或其他。

    形式和实体无论如何都没有关系,无论是在使用上还是在意图上。

    【讨论】:

    • 我无法通过$form->getData() 获取数据。可能是因为没有data_class 连接到formType。我在控制器内部使用了createFormBuilder,而不是使用formType 的createForm。在我的控制器中,我使用请求对象来修改表单。
    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    相关资源
    最近更新 更多