2016-04-06 3 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

Смежные вопросы