繁体   English   中英

Symfony2和嵌入式控制器

[英]Symfony2 and embedded controller

我的表单服务有问题...在页脚(布局)中,我有一个表单,但它不起作用,我也不知道为什么。 您是否可以调用“ createForm”方法,因为Symfony2.5返回的错误是:

尝试在... / Symfony / src / Dim / WebsiteBundle / Service / QuickContact.php第47行中的类“ Dim \\ WebsiteBundle \\ Service \\ QuickContact”上调用方法“ createForm”。

我的服务(名称空间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);
  }

}

我的service.yml:

services:
     dim_website.quickcontact:
         class: Dim\WebsiteBundle\Service\QuickContact
         calls:
            - [setRequest, [@request_stack], setFormFactory, [@form.factory]]

在我的布局中,我调用index方法:

{{ quickcontact.indexAction() }}

供您参考,我的ContactType及其实体可以正常工作。

谢谢大家的帮助。 最好的祝福,

我不确定为什么createForm进行操作,但要回答您的问题:您正在QuickContact类上调用方法createForm ,而该类显然createForm方法。

在这种情况下,您应该调用$this->formFactory->create(new ContactType(), $Contact)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM