我想用一个变量替换我的班级:
$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));
我得到了错误:
编译错误:在编译时不允许动态类名 :: class提取
但是我该怎么做?
答案 0 :(得分:4)
错误告诉您不能使用动态类名。
所以你不能。
直接在add()
调用中使用类名。如果确实需要,您甚至可以创建之前包含全限定类名的变量。
$class = TextType::class;
$formBuilder->add($name, $class,
[
'attr' => ['class' => 'form-control'],
'data' => $dataItem,
'mapped' => false,
'label' => $name
]
);