Nom*_*man 2 php entity-framework symfony
我刚刚开始使用 symfony2,我想获得一个已注册实体的列表,以便在title和description两个字段中进行搜索。
我有多个Entities以及多个Admins,其中一些映射到Symfony :
单个捆绑中的媒体(FrontBundle)。
与实体结构捆绑。
FrontBundle
->Pages(Entity)
->Menus(Entity)
->Testimonials.(Entity)
Run Code Online (Sandbox Code Playgroud)
另外我不想getRepository($entity)每次都打电话,因为它会运行多个查询。
关于做到这一点的最佳方法的任何想法?
要获取所有映射实体,我建议使用实体管理器:
$em = $this->getDoctrine()->getManager();
$entities = $em->getConfiguration()->getMetadataDriverImpl()->getAllClassNames();
Run Code Online (Sandbox Code Playgroud)
这应该为您提供实体的完整类名列表。
至于使用getRepository($entity)它是不可能的,但是您可以使用实体管理器来获取快捷方式名称,或者创建一个小助手函数来这样做,例如:
public function convertClassNameToShortcutNotations($className)
{
$cleanClassName = str_replace('\\Entity', '\:', $className);
$parts = explode('\\', $cleanClassName);
return implode('', $parts);
}
Run Code Online (Sandbox Code Playgroud)
结合实体管理器为您提供的实体类列表应该可以工作:
foreach ($entities as $className) {
$shortcut = $this->convertClassNameToShortcutNotations($className);
}
Run Code Online (Sandbox Code Playgroud)
如果您的项目结构是标准的,那么这一切都应该没有问题。
| 归档时间: |
|
| 查看次数: |
2969 次 |
| 最近记录: |