【发布时间】:2021-05-13 08:26:01
【问题描述】:
我想在 Symfony 5 的不同页面中显示相同的表单。有一种方法可以做到这一点,而无需在每个控制器操作中创建相同的表单?
【问题讨论】:
-
“Symfony 建议在控制器中放置尽可能少的逻辑。这就是为什么最好将复杂的表单移动到专用类而不是在控制器操作中定义它们。” symfony.com/doc/current/forms.html#creating-form-classes
我想在 Symfony 5 的不同页面中显示相同的表单。有一种方法可以做到这一点,而无需在每个控制器操作中创建相同的表单?
【问题讨论】:
是的,当然可以。
请查看 Symfony 文档中的 Creating Form Classes 部分。
基本上你需要创建一个实现FormTypeInterface 的类,或者更简单地使用AbstractType 类,它实现了大部分所需的东西。那么你只需要实现buildForm 方法,这和你目前在控制器中可能写的几乎一样。
【讨论】: