如何从控制器调用表单(定义为服务)
//Here my code in the controller befor I define Form_NameType() as a service
$form = $this->createForm(new Form_NameType(), $obect_that_hydrate_my_form);
// SERVICE
blogbundle.Form_Nameform:
class: BlogBundle\Form\Form_NameType
arguments: [@security.context]
tags:
- {name: form.type, alias: FormAsAService }
答案 0 :(得分:0)
要调用Symfony
中的任何服务,您需要使用get
ContainerInterface
方法。所以在Controller
课程中你应该打电话:
$form = $this->container->get('blogbundle.Form_Nameform');
如果Controller
扩展Symfony\Bundle\FrameworkBundle\Controller\Controller
,则该方法有别名,您可以使用此语法(更短):
$form = $this->get('blogbundle.Form_Nameform');
检查documentation如何使用服务。
答案 1 :(得分:0)
我刚刚找到了怎么做...我以前试过但是我拼错了所以无法工作。
$form = $this->createForm( 'FormAsAService' , $obect_that_hydrate_my_form);
FormAsAService是服务中作为别名定义的名称,应该与getName()函数中表单类中的名称define相同。
public function getName(){ return 'FormAsAService';}