2016-04-06 30 views
0

インスタンス化するクラスの名前を格納する変数を使用して、クラスを動的にインスタンス化しようとしています。クラス名を格納する変数を使用したクラスの動的インスタンス化

use DefaultBundle\Form\CategoryType; 

class DefaultController extends Controller 
{ 
    public function indexAction() 
    { 
     $classname = 'CategoryType::class'; 

     //$form = $this->createForm(CategoryType::class); 

     $form = $this->createForm($classname); 

しかし、私はこのエラーを取得する:

Could not load type "CategoryType::class"

あなたが想像できるように、私はコメント行を使用して問題ありません。

答えて

2

引用符を削除します。以下のために同じコードを使用するためには、

$classname = CategoryType::class; 

は、それ以外の場合は、あなたの答えのクラス名の代わりに

+0

感謝を文字列リテラルCategoryType::classを渡しているが、私は、クラス名の最初の部分は変数である必要が異なるクラス。私はこれを試しました: '$ classname = $ variable。 ':: class''は動作しません。 – ziiweb

+0

引用符を入れないでください;-) – Neal

+0

これで '$ classname =' DefaultBundle \ Form \ CategoryType ';'これでOKです – ziiweb

関連する問題