0

在我的控制器中,我有:

$form = $this->createForm(new ResetPassword());

ResetPassword 是一个 AbstractType 类,它有自己的 buildForm() 方法,我用它来 -> 按原样添加一些字段。

在我的控制器中,我希望能够在显示之前向表单添加另一个字段。

这是我正在尝试的:

$form = $this->createForm(new ResetPassword())->add('test');

这会产生一个错误:

Catchable Fatal Error: Argument 1 passed to Symfony\Component\Form\Form::add() must implement interface Symfony\Component\Form\FormInterface, string given
4

1 回答 1

3

有一种更好的方法可以让您继续在干净的 MVC 结构中工作。所以,更好的是使用“表单事件”来动态生成您的表单

例如,通过将事件订阅者添加到您的表单,您将字段的创建委托给该订阅者。然后,您可以根据您的“EventType”在订阅者中添加所需的字段。

将事件订阅者添加到表单类

如何使用表单事件动态生成表单

于 2012-11-12T16:35:30.307 回答