2016-02-14 113 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); 
相關問題