我的原始SQL应该放在Symfony 2中的哪个位置?

时间:2013-12-27 11:53:01

标签: php mysql symfony doctrine

我目前正在使用Symfony 2重建我当前的网站,而不是之前运行的Codeigniter框架。我对Doctrine也很陌生,而且我在制定一个复杂的MySQL查询的最佳位置时遇到了一些麻烦。

我目前有一个服务容器,它通过prepare($sql)->execute()使用此查询,以及使用它提供的数据的各种函数。现在,我将doctrine传递给服务容器,并在其中运行查询。然后我使用相同的服务容器来完成我想要的数据。

对我来说,它只是感觉在同一个类中正确获取和使用数据库数据?我应该将execute()查询放在Doctrine创建文件底部的entities文件夹中,在它自己的文件中的entities文件夹中,还是它在哪里好?

1 个答案:

答案 0 :(得分:4)

我认为,通过准备实体数据,在Repository文件夹中为某些操作创建自定义存储库类是更好的方法。 您可以在此处阅读有关自定义存储库的更多信息custom-repository-classes

可以使用进一步的存储库抛出学说。 例如:

$container->get('doctrine')->getRepository('YourBundleName:Entity')->someRepositoryMethod();