2016-04-06 42 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; 

否則它傳遞字符串字面CategoryType::class代替類名的

+0

謝謝您的回答,但我需要的類名的第一部分是可變的,爲了使用相同的代碼不同的類。我試過這個:'$ classname = $ variable。 ':: class''但它不起作用 – ziiweb

+0

停止加引號;-) – Neal

+0

我現在有這個:'$ classname ='DefaultBundle \ Form \ CategoryType';'它運行正常 – ziiweb

相關問題