Как я могу заменить динамический класс переменной? - PullRequest
0 голосов
/ 13 марта 2019

Я хотел бы заменить свой класс переменной:

$type = "TextType";

$formBuilder->add($name, TextType::class, array('attr' => array('class' => 'form-control'), 'data' => $dataItem, 'mapped' => false, 'label' => $name));

Это мой подход:

$formBuilder->add($name, $type::class, array('attr' => array('class' => 'form-control'), 'data' => $dataItem, 'mapped' => false, 'label' => $name));

Я получаю ошибку:

Ошибка компиляции: динамические имена классов не допускаются во время компиляции :: выборка класса

Но как я могу это сделать?

1 Ответ

4 голосов
/ 13 марта 2019

Ошибка говорит вам, что вы не можете использовать динамические имена классов.

Так что вы не можете.

Используйте имя класса непосредственно в вызове add().Вы даже можете создать переменную, содержащую полное имя класса, если вам действительно нужно:

$class = TextType::class;

$formBuilder->add($name, $class,
     [
          'attr'   => ['class' => 'form-control'],
          'data'   => $dataItem,
          'mapped' => false,
          'label'  => $name
     ]
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...