在我的控制器中,我有:
$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
答案 0 :(得分:3)
有一种更好的方法可以让您继续使用干净的MVC结构。所以,更好的方法是使用“表格事件”到dynamically generate your forms。
例如,通过向表单添加事件订阅者,您可以将字段的创建委派给该订阅服务器。然后,您可以根据“EventType”在订阅者中添加所需的字段。