gpt4 book ai didi

php - 如何在 Symfony2 中处理来自另一个 Controller 的表单?

转载 作者:搜寻专家 更新时间:2023-10-31 22:04:11 26 4
gpt4 key购买 nike

我有 2 个独立的 Controller Controller1:somethingActionController2:processForm

somethingAction 中,我创建了一个表单并将其操作 (url) 设置为 processForm 的 url。当提交 somethingAction View 中的表单时,POST 数据将转到 processForm

processForm 中,我创建了相同的表单,对其进行验证和处理。一切都很好,除非表格无效。因为为了显示错误以及用户输入的数据,您需要呈现与 somethingAction 完全相同的 View 。

令我恼火的是,如果不复制代码(流程表单部分)我就无法重用这样的表单,即使它只有 3-4 行,我也希望拥有这种功能。

有什么简单的方法吗?没有 AJAX。我错过了什么吗?

如果嵌入 Controller 可以重定向就可以做到。

最佳答案

可能有帮助的两件事:

1) 向下滚动到文档中的“创建表单类”,了解如何避免重复表单:

http://symfony.com/doc/current/book/forms.html#creating-form-classes

2) 一个常见的模式(在很多情况下我会说得更好)是发布到最初生成表单的同一 Controller 操作。也就是说,Controller1:somethingAction POST 到 Controller1:somethingAction。然后您需要一些逻辑(基本上是一个 IF 语句)来检测何时提交了表单并处理该表单,或者显示它并显示错误。在伪代码中它可能看起来像:

function somethingAction()
if form.isValid()
process form
redirect or render a success screen
else
render form (with or without errors)

关于php - 如何在 Symfony2 中处理来自另一个 Controller 的表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22028908/

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