[英]Symfony2 and embedded controller
I have a problem with my form service... In my footer (in a layout), I have a form but it not work and I dont know why. 我的表单服务有问题...在页脚(布局)中,我有一个表单,但它不起作用,我也不知道为什么。 Do you how I can call the "createForm" method because the error returned by Symfony2.5 is : 您是否可以调用“ createForm”方法,因为Symfony2.5返回的错误是:
Attempted to call method "createForm" on class "Dim\\WebsiteBundle\\Service\\QuickContact" in .../Symfony/src/Dim/WebsiteBundle/Service/QuickContact.php line 47. 尝试在... / Symfony / src / Dim / WebsiteBundle / Service / QuickContact.php第47行中的类“ Dim \\ WebsiteBundle \\ Service \\ QuickContact”上调用方法“ createForm”。
My service (namespace Dim\\WebsiteBundle\\Service) : 我的服务(名称空间Dim \\ WebsiteBundle \\ Service):
class QuickContact
{
private $request;
private $formFactory;
public function setRequest(RequestStack $request_stack)
{
return $this->request = $request_stack->getCurrentRequest();
}
public function setFormFactory($formFactory)
{
return $this->formFactory = $formFactory;
}
public function indexAction()
{
$Contact = new Contact();
# Create the form with the contact entity constraints
$form = $this->formFactory->create(new ContactType(), $Contact);
if($this->request->isMethod('POST'))
{
$form->bind($this->request);
if($form->isValid())
{
echo 'formulaire valide';
}
}
$this->request->getSession()->set('form', $form);
}
}
My service.yml : 我的service.yml:
services:
dim_website.quickcontact:
class: Dim\WebsiteBundle\Service\QuickContact
calls:
- [setRequest, [@request_stack], setFormFactory, [@form.factory]]
In my layout, I call the index method : 在我的布局中,我调用index方法:
{{ quickcontact.indexAction() }}
For your information, my ContactType and his entity work fine. 供您参考,我的ContactType及其实体可以正常工作。
Thanks you all for your help. 谢谢大家的帮助。 Best regards, 最好的祝福,
I'm not sure why you're doing things as you are, but to answer your question: you are calling method createForm
on your QuickContact
class which obviously doesn't have createForm
method defined. 我不确定为什么createForm
进行操作,但要回答您的问题:您正在QuickContact
类上调用方法createForm
,而该类显然createForm
方法。
You should be calling $this->formFactory->create(new ContactType(), $Contact)
instead in your case. 在这种情况下,您应该调用$this->formFactory->create(new ContactType(), $Contact)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.