Php 我可以更改一个关于构建的集体行动表单吗?
在表单类的Php 我可以更改一个关于构建的集体行动表单吗?,php,symfony,symfony-2.3,Php,Symfony,Symfony 2.3,在表单类的buildForm方法(AbstractTypederived)上,我可以设置该表单的操作吗? 我想做的与构建嵌入式表单时可以使用的setAction方法类似: $form = $this->createFormBuilder() ->setAction($this->generateUrl('my_action')) ->add('field', 'text') ->add('button', 'submit'); 我的意思是,setAct
buildForm
方法(AbstractType
derived)上,我可以设置该表单的操作吗?
我想做的与构建嵌入式表单时可以使用的setAction
方法类似:
$form = $this->createFormBuilder()
->setAction($this->generateUrl('my_action'))
->add('field', 'text')
->add('button', 'submit');
我的意思是,
setAction
是否等同于表单类?您可以在buildForm
方法中访问相同的表单生成器,因此只需在其上调用setAction
即可:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->setAction($path);
}
问题是如何将$path
传递给表单类型。其中一种方法是在创建表单时将其作为选项传递。但是如果您正在传递$path
,为什么不直接设置操作本身呢
$form = $this->createForm(new MyType(), $object, array(
'action' => $this->generateUrl('my_action'),
));
另一种方法是将路由器注入表单类型并使用它生成URL,但我认为在表单类型中做出这样的决定不是一个好主意。我还不能提高投票率,因为我的声誉仍然不允许这样做。如果允许的话,我会做的好吗?当然,没问题。这不是要求。这只是对回答者的一种双重感谢。:)