在ArticleController中我有:
$em = $this->get('doctrine.orm.entity_manager');
$dql = "SELECT a FROM AcmeMainBundle:Article a WHERE a.showing = 1 ORDER BY createdAt DESC";
$query = $em->createQuery($dql);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query, /* query NOT result */
$request->query->getInt('page', 1)/*page number*/,
10/*limit per page*/
);
在AdminController中我有:
$em = $this->get('doctrine.orm.entity_manager');
$dql = "SELECT a FROM AcmeMainBundle:Article a WHERE a.showing = 1 ORDER BY createdAt DESC";
$query = $em->createQuery($dql);
$results = $query->getResults();
所以我有重复:
$em = $this->get('doctrine.orm.entity_manager');
$dql = "SELECT a FROM AcmeMainBundle:Article a WHERE a.showing = 1 ORDER BY createdAt DESC";
$query = $em->createQuery($dql);
数据库的结果应保存在Repositorium中,但是如果是没有结果/执行的查询会怎么样?
根据正确编程的规则,在没有结果/执行的情况下保存查询的位置?
我会在几个地方使用此查询,包括服务。
答案 0 :(得分:1)
最佳做法是在Entity Repository课程中存储查询。您可以轻松地在控制器中重复使用它或将其注入您的服务。您可以实现不同的方法来返回结果集,Query对象或您需要的任何内容。
JsonSerializer