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

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

Метод not класса Expr возвращает объект выражения, который инвертирует переданное ему условие. В качестве параметра принимается строка с выражением или объект Expr. Обычно используется совместно с методом where для исключения записей, удовлетворяющих некоторому условию.

Синтаксис

$expr->not(string|Expr $expression)

Пример

Давайте выберем все статьи, кроме тех, у которых id равен 1:

<?php namespace AppRepository; use AppEntityArticle; use DoctrineBundleDoctrineBundleRepositoryServiceEntityRepository; use DoctrinePersistenceManagerRegistry; class ArticleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Article::class); } public function findAllExcept(int $id): array { return $this->createQueryBuilder('a') ->where($this->expr()->not('a.id = :id')) ->setParameter('id', $id) ->getQuery() ->getResult(); } } ?>

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

["article 2", "article 3"]

Пример

Давайте скомбинируем not с методом eq для исключения статей по имени:

<?php namespace AppRepository; use AppEntityArticle; use DoctrineBundleDoctrineBundleRepositoryServiceEntityRepository; use DoctrinePersistenceManagerRegistry; class ArticleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Article::class); } public function findAllExceptName(string $name): array { $expr = $this->expr(); return $this->createQueryBuilder('a') ->where($expr->not($expr->eq('a.name', ':name'))) ->setParameter('name', $name) ->getQuery() ->getResult(); } } ?>

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

["article", "hello"]

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

  • класс Expr,
    который предоставляет методы для построения выражений
  • метод eq,
    который создаёт выражение равенства
  • метод neq,
    который создаёт выражение неравенства
  • метод andX,
    который объединяет выражения через логическое И
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить