2013-09-29 16 views
1

我使用的Symfony2和FOSUserBundle其中createFormBuilder()?

我想在ProfileController可使用 'createFormBuilder'

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

use Symfony\Component\HttpFoundation\Response; 
use Acme\UserBundle\Entity\AttrMutor; 


class ProfileController extends ContainerAware 
{ 
     $attrMutor = new AttrMutor(); 
     $form = $this->createFormBuilder($attrMutor);  

它顯示如

FatalErrorException: Error: Call to undefined method Acme\UserBundle\Controller\ProfileController::createFormBuilder() 

我怎樣才能解決這個問題?

我可以使用這 - $> createFormBuilder在其它控制器如

class DefaultController extends Controller 
{ 
     $attrMutor = new AttrMutor(); 
     $form = $this->createFormBuilder($attrMutor); //OK 

我認爲存在差異暗示延伸ContainerAware並延伸控制器之間

回答

6

createFormBuilder方法是在Symfony的鹼Controller類。 (http://api.symfony.com/2.3/index.html?q=createFormBuilder

如果你只想有你的控制器擴展ContainerAware,而不是Controller,你仍然可以從服務容器表單生成器:

$builder = $this->container->get('form.factory')->createBuilder('form', $data, $options); 
+0

謝謝verymuch,它可以幫助我很好 – whitebear