我正试图动态地表格形式。表单名称存储在$ obj-> getFormTypeName()。
中$formName = 'Acme\testBundle\Form\CustomType\\'.ucfirst($obj->getFormTypeName()).'Type';
$contactForms[$obj->getId()] = $this->createForm($formName::class);
但我收到错误:Compile Error: Dynamic class names are not allowed in compile-time ::class fetch
有没有办法用symfony中的Scope Resolution Operator动态初始化表单?
感谢阅读。
答案 0 :(得分:6)
要解决这个问题,我会做类似的事情:
$contactForms[$obj->getId()] = $this->createForm(
'Acme\testBundle\Form\CustomType\' . ucfirst($obj->getFormTypeName()) . 'Type'
);
毕竟,:: class只返回类的完全限定名。
答案 1 :(得分:0)
不应该在类的字符串名称的变量(例如)上调用::class
。
Acme\testBundle\Form\CustomType\FormType
这样
'Acme\testBundle\Form\CustomType\'::class
,最后是类的字符串var,它是类名本身。
据我所知'stringContents'.val()