2016-02-14 88 views
0

我正尝试在symfony2中创建一个简单的博客。但不幸的是我有一个问题,而试图创建一个Symfony2的形式的代码如下我找不到错误原因

<?php 
/** 
* Created by PhpStorm. 
* User: kanat 
* Date: 2/13/16 
* Time: 8:11 PM 
*/ 
namespace Blogger\BlogBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 

class EnquiryType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('name'); 
     $builder->add('email', 'email'); 
     $builder->add('subject'); 
     $builder->add('body', 'textarea'); 
    } 

    public function getName() 
    { 
     return 'contact'; 
    } 
} 

其情境博客\ BlogBu​​ndle \表格\ EnquiryType.php 错误是:

Expected argument of type "string", >"Blogger\BlogBundle\Form\EnquiryType" given

我不知道如何解决这个问题。请帮我

+0

你应该表现出错误的堆栈跟踪。这个表格没什么问题。 – xurshid29

+0

CRITICAL - 未捕获的PHP异常Symfony \ Component \ Form \ Exception \ UnexpectedTypeException:“在/ home/kanat/Public/Blog/vendor/symfony中给出”期望的参数类型“字符串”,“Blogger \ BlogBu​​ndle \ Form \ EnquiryType” symfony/src/Symfony/Component/Form/FormFactory.php第64行 –

+0

将EnquiryType:class传递给控制器​​的createForm方法,而不是实例。 – mblaettermann

回答

4

你的版本,但错误:

$form = $this->createForm(new EnquiryType(), $yourEntity); 

您必须使用:

$form = $this->createForm(EnquiryType::class, $yourEntity); 

控制器

public function contactAction() { 
    $enquiry = new Enquiry(); 
    $form = $this->createForm(EnquiryType::class, $enquiry); 
相关问题