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

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

Метод notLike класса Expr создаёт выражение NOT LIKE для запросов Doctrine. Он используется вместе с QueryBuilder и принимает первым параметром имя поля сущности, а вторым - шаблон, которому поле не должно соответствовать. Метод возвращает объект Expr, который затем передаётся в методы where или andWhere. В шаблоне можно использовать спецсимволы % (любая строка) и _ (один символ).

Синтаксис

public function notLike(string $field, string $pattern): Expr

Пример

Давайте выберем статьи, название которых не начинается с 'abcde', используя notLike:

<?php namespace App\Repository; use App\Entity\Article; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Persistence\ManagerRegistry; class ArticleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Article::class); } public function findNotStartingWithAbcde(): array { $qb = $this->createQueryBuilder('a'); $expr = $qb->expr(); $qb->where($expr->notLike('a.title', 'abcde%')); return $qb->getQuery()->getResult(); } } ?>

Пример

Давайте исключим статьи, название которых заканчивается на 'article', и выведем оставшиеся заголовки:

<?php namespace App\Controller; use App\Repository\ArticleRepository; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/articles', name: 'article_list')] public function list(ArticleRepository $repository): Response { $qb = $repository->createQueryBuilder('a'); $expr = $qb->expr(); $qb->where($expr->notLike('a.title', '%article')); $res = $qb->getQuery()->getResult(); $titles = array_map(fn($article) => $article->getTitle(), $res); return new Response(implode(', ', $titles)); } } ?>

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

"abcde, user, hello"

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

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