Symfony3 doctrine检查集合是否为空

时间:2016-09-20 12:14:37

标签: doctrine-orm symfony

  1. 有3个实体文档,DocsPerm,DocsList
    1. 在学说中我只选择Docs + DocsPerm。
    2. 然后我检查Docs-> getDocsList-> isEmpty()然后从数据库中选择所有DocsList
    3. 如何检查DocsList是否为空或选择无理由从数据库中选择所有元素? 感谢。
  2. 编辑: 示例

    1. 有2个控制器。 (一个是Docs + perm,第二个Docs + DocList)
    2. 有2个控制器的1个树枝模板。在这里,我不想检查
    3. {% if Docs.DocsList is empty %}返回false 或

      {% if Docs.DocsList.isEmpty %}返回false或

      {% if Docs.DocsList.first is defined %}收到错误。

      前两个从db中获取所有DocsList元素,我不需要。

1 个答案:

答案 0 :(得分:1)

提供服务。

这样的东西
$docListChecker->isEmpty($docs);

结束然后进行查询,仅获取实体数量,但不获取实体本身。

$result = $qb->select('COUNT(l)')
                ->from('YourBundle:docsList' , 'l')
                ->leftJoin('l.docs.','d')
                ->where('d.id = :id')
                ->setParameter('id', $id)
                ->getQuery()
                ->getSingleScalarResult();

您可以将此服务传递给树枝并将列表检查为

 {% if checker.isEmpty(Docs.DocsList) %}

甚至你可以制作一个枝条过滤器并像

一样使用它
 {% if Docs.DocsList | isListEmpty %}