我在url中生成依赖于请求参数的类名。例如: ... SOME_URL ...?CATEGORY_ID = 3
ID 3它是实体类:AdFlat 对于使用表单类型,我使用表单类AdFlatType。
在控制器中:
public function addAction(Request $request)
{
$categoryId = $request->get('category_id');
if ($categoryId) {
$category = $this->getDoctrine()->getRepository('AdBundle:AdCategory')->find($categoryId);
if (null === $category) {
return $this->renderError('You cannot create Ad for this category');
}
if (null === $category->getEntity()) {
return $this->renderError('You cannot create Ad for category ' . $category->getTitle());
}
$entityName = $category->getEntity();
$formTypeName = $entityName . 'Type';
$formType = new $formTypeName();
$entity = new $entityName();
}
}
在USE部分:
use AdBundle\Form\Type\AdFlatType;
但无论如何我收到错误:
尝试从全局命名空间加载类“AdFlatType”。难道 你忘记了“使用”声明吗?
有什么问题?
感谢。
答案 0 :(得分:3)
您的$category->getEntity()
应该返回完全限定的班级名称,而不仅仅是AdFlat
,而是AdBundle\Form\Type\AdFlat
。