РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
77 of 258 menu

Метод neq класса Expr

Метод neq класса Expr создаёт выражение для сравнения поля с значением по принципу "не равно". Первым параметром передаётся имя поля или выражение, вторым - значение для сравнения. Метод возвращает строку сравнения, которую можно использовать в методах where, andWhere и orWhere.

Метод neq является сокращением от "not equal" и полностью эквивалентен оператору <> в SQL.

Синтаксис

public function neq(string $field, mixed $value): string

Пример

Давайте найдём всех пользователей, чей возраст не равен 30:

<?php namespace App\Repository; use App\Entity\User; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\QueryBuilder; class UserRepository extends EntityRepository { public function findNotAge30(): array { $qb = $this->createQueryBuilder('u'); $expr = $qb->expr(); $qb->where($expr->neq('u.age', 30)); return $qb->getQuery()->getResult(); } } ?>

В результате будет выполнен следующий SQL-запрос:

SELECT u.* FROM user u WHERE u.age <> 30

Пример

Давайте найдём статьи, у которых заголовок не равен 'hello':

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\ORM\EntityRepository; class ArticleRepository extends EntityRepository { public function findNotHello(): array { $qb = $this->createQueryBuilder('a'); $expr = $qb->expr(); $qb->where($expr->neq('a.title', ':title')) ->setParameter('title', 'hello'); return $qb->getQuery()->getResult(); } } ?>

Результат выполнения кода:

["article", "user", "abcde"]

Пример

Давайте скомбинируем метод neq с другими условиями через логическое И:

<?php namespace App\Repository; use App\Entity\Product; use Doctrine\ORM\EntityRepository; class ProductRepository extends EntityRepository { public function findActiveNotDraft(): array { $qb = $this->createQueryBuilder('p'); $expr = $qb->expr(); $qb->where( $expr->andX( $expr->neq('p.status', ':draft'), $expr->eq('p.active', ':active') ) ) ->setParameter('draft', 'draft') ->setParameter('active', true); return $qb->getQuery()->getResult(); } } ?>

Результат выполнения кода:

["article 1", "article 2", "article 3"]

Смотрите также

  • класс Expr,
    который создаёт выражения для Query Builder
  • метод eq,
    который создаёт условие равенства
  • метод lt,
    который создаёт условие "меньше"
  • метод gt,
    который создаёт условие "больше"
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить