【发布时间】:2015-11-30 01:25:31
【问题描述】:
据我了解,最好的代码风格是将复杂的 SQL/DQL 查询放到实体存储库中。
例如,有一个名为“News”的实体。它有一个名为“NewsRepository”的自己的实体存储库。
在控制器中有这样的代码:
/**
* @Route("/news", name="news")
*/
public function indexAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$paginator = $this->get('knp_paginator');
$news = $paginator->paginate(
$em->createQuery('SELECT n FROM AppBundle:News n'),
$request->query->getInt('page', 1),
10
);
return $this->render('app/news/list.html.twig', array(
'news' => $news,
));
}
现在我想添加更多功能(过滤、排序、..)。那是因为我认为应该将查询移至任何服务或实体存储库。但是最好的编码风格是什么?
(有没有人有很好的通用想法如何轻松添加过滤,按...排序?)
【问题讨论】:
标签: symfony doctrine-orm coding-style entity knppaginator