我在Symfony2上进行编程并且我有一个疑问:如果我想尊重MVC模式,我应该在Controller的动作或实体内部的方法中使用QueryBuilder进行查询? 感谢。
答案 0 :(得分:1)
我认为你应该在Repository类中进行查询:http://symfony.com/doc/current/book/doctrine.html#custom-repository-classes
在前面的部分中,您开始在控制器内构建和使用更复杂的查询。 为了隔离,测试和重用这些查询,最好为您的实体创建自定义存储库类,并在那里添加带有查询逻辑的方法。
答案 1 :(得分:1)
首先,请注意Symfony2并不完全尊重MVC模式。它提供控制器和模板(视图),但不提供模型。
控制器是'http land'和'application land' [1] 之间的一层。它不仅仅是一个层,它应该是最薄的层。另一方面,2'土地'应该很大。
这意味着控制器中现在应该有querybuilder,但这应该在用户的存储库中完成。在控制器中,您只需要调用该存储库的一个方法。
中自定义存储库的更多信息