我刚刚阅读了官方的Symfony 3文档,当我需要从数据库中检索对象时,应该使用类似于以下的代码:
$repository = $em->getRepository('AppBundle:Product');
这里的Product只是一个没有父类的实体类,因此Doctrine通过注解来处理它。但我不确定在引号中硬编码模型名称是否是个好主意。如果我后来决定把模型命名为Good,我需要在整个项目中搜索并替换Product为Good吗?例如,在Laravel中,每个模型都扩展了基础模型类,所以我可以写成:Product::model()->find('nevermind')
。在Symfony 3.3中有这样的选项吗?
Product::model() -> Good::model()
,'AppBundle:Product' -> 'AppBundle:Good'
,Product::class -> Good::class
,是吗?我认为最接近的答案是@COil的回答。顺便说一句,Doctrine在这里有不同的方法。模型不应该知道任何关于数据库或存储库的信息。它应该尽可能少地依赖。好的IDE /插件也可以解决此问题。 - Tomsgu