Освоение Laravel Query Builder: сочетание «LIKE» и «EQUAL» для эффективного поиска

Построитель запросов Laravel предоставляет мощный и гибкий способ создания запросов к базе данных. Когда дело доходит до поиска конкретных данных, сочетание операторов LIKE и EQUAL может оказаться невероятно полезным. В этой статье мы рассмотрим различные методы достижения этой цели в Laravel, используя разговорный язык и попутно предоставляя примеры кода.

Метод 1: использование методаwhere() с несколькими условиями

$results = DB::table('users')
    ->where('name', 'LIKE', '%John%')
    ->where('status', '=', 'active')
    ->get();

Объяснение: В этом методе мы используем метод where()несколько раз, чтобы добавить в наш запрос несколько условий. Первое условие ищет имена, содержащие «Джон», с помощью оператора LIKE, а второе условие проверяет точное совпадение «активного» с помощью оператора равенства.

Метод 2: объединение LIKE и EQUAL с методом orWhere()

$results = DB::table('users')
    ->where('name', 'LIKE', '%John%')
    ->orWhere('status', '=', 'active')
    ->get();

Объяснение: В этом методе мы используем метод orWhere()для добавления альтернативного условия в запрос. Запрос вернет результаты, соответствующие либо условию LIKE, либо условию равенства.

Метод 3. Использование необработанных выражений

$results = DB::table('users')
    ->whereRaw("name LIKE '%John%' AND status = 'active'")
    ->get();

Объяснение: Иногда сложные условия требуют использования необработанных выражений. В этом методе мы используем метод whereRaw()для прямой записи условий, объединяя операторы LIKE и EQUAL в одном операторе.

Метод 4. Использование методаwhere() с замыканием

$results = DB::table('users')
    ->where(function ($query) {
        $query->where('name', 'LIKE', '%John%')
              ->orWhere('status', '=', 'active');
    })
    ->get();

Объяснение: Laravel позволяет нам группировать несколько условий с помощью замыканий. В этом методе мы передаем замыкание методу where()и определяем внутри него условия LIKE и равенства, достигая желаемой комбинации.

Объединение операторов LIKE и EQUAL в запросе Laravel может значительно улучшить функциональные возможности поиска вашего приложения. В этой статье мы рассмотрели четыре различных метода достижения этой цели, используя методwhere() с несколькими условиями, метод orWhere(), необработанные выражения и замыкания. Освоив эти методы, вы сможете создавать мощные и эффективные поисковые запросы в Laravel.