Doctrine Query Builder: методы для условных объектов и сложных запросов

В Doctrine Query Builder вы можете использовать условные объекты для построения сложных запросов на основе определенных условий. Вот несколько методов, которые вы можете использовать вместе с примерами кода:

  1. andWhere(condition): добавляет дополнительное условие к предложению WHERE с помощью оператора AND.

    $qb->andWhere($qb->expr()->eq('column', 'value'));
  2. orWhere(condition): добавляет дополнительное условие к предложению WHERE с помощью оператора OR.

    $qb->orWhere($qb->expr()->eq('column', 'value'));
  3. andWhere/orWhere с несколькими условиями: вы можете объединить несколько условий с помощью операторов AND или OR.

    $qb->andWhere(
    $qb->expr()->eq('column1', 'value1'),
    $qb->expr()->eq('column2', 'value2')
    );
  4. addSelect(выражение): добавляет выражение в предложение SELECT.

    $qb->addSelect('column');
  5. leftJoin(relation, alias, [condition]): выполняет операцию LEFT JOIN с указанным отношением и псевдонимом.

    $qb->leftJoin('entity.relation', 'alias', $qb->expr()->eq('alias.column', 'value'));
  6. orderBy(column, [order]): добавляет предложение ORDER BY для упорядочивания результатов.

    $qb->orderBy('column', 'ASC');
  7. groupBy(column): добавляет предложение GROUP BY для группировки результатов по определенному столбцу.

    $qb->groupBy('column');
  8. having(condition): добавляет предложение HAVING для фильтрации результатов запроса GROUP BY.

    $qb->having($qb->expr()->gt('SUM(column)', 'value'));
  9. setParameter(key, value): устанавливает значение параметра для запроса.

    $qb->setParameter('key', 'value');
  10. getQuery(): извлекает созданный объект Query.

    $query = $qb->getQuery();