Laravel — это популярный PHP-фреймворк, известный своим выразительным синтаксисом и богатым набором функций. Одним из ключевых компонентов Laravel является мощный ORM (объектно-реляционное сопоставление) под названием Eloquent, который упрощает запросы к базе данных и манипулирование ею. В этой статье мы углубимся в методwhereNotIn, предлагаемый Eloquent в Laravel, и исследуем его функциональность на примерах кода.
Понимание метода «whereNotIn».
Метод «whereNotIn» позволяет извлекать записи из таблицы базы данных, где значение определенного столбца отсутствует в заданном массиве или результате запроса. Это полезно, если вы хотите отфильтровать записи на основе условия, исключающего определенные значения.
Синтаксис:
$collection = DB::table('table_name')
->whereNotIn('column_name', $values)
->get();
Примеры кода:
-
Фильтрация записей на основе массива:
$excludedValues = [1, 3, 5]; $users = DB::table('users') ->whereNotIn('id', $excludedValues) ->get();
В этом примере мы извлекаем все записи пользователей из таблицы «users», идентификаторы которых отсутствуют в массиве
$excludedValues
. -
Фильтрация записей на основе подзапроса:
$excludedUsers = DB::table('profiles') ->select('user_id') ->where('age', '>', 30); $users = DB::table('users') ->whereNotIn('id', $excludedUsers) ->get();
Здесь мы используем подзапрос для выбора идентификаторов пользователей из таблицы «профили», возраст которых превышает 30 лет. Затем метод «whereNotIn» отфильтровывает записи пользователей из таблицы «пользователи» на основе выбранных идентификаторов..
-
Объединение нескольких условий «whereNotIn»:
$excludedRoles = ['admin', 'superadmin']; $excludedStatuses = ['inactive']; $users = DB::table('users') ->whereNotIn('role', $excludedRoles) ->whereNotIn('status', $excludedStatuses) ->get();
В этом примере мы объединяем несколько условий «whereNotIn», чтобы отфильтровать записи пользователей, роли которых отсутствуют в массиве
$excludedRoles
, а статусы — вне массива$excludedStatuses
.
Метод «whereNotIn» в Laravel Eloquent предоставляет удобный способ фильтрации записей на основе отсутствия определенных значений в столбце. В этой статье мы рассмотрели синтаксис и использование методаwhereNotIn на примерах кода. Использование этого метода в ваших проектах Laravel поможет вам создавать более эффективные и точные запросы к базе данных.
Включив методwhereNotIn в Laravel, вы можете улучшить функциональность своего приложения и улучшить результаты запросов, что делает его ценным инструментом для разработчиков, работающих с Eloquent в Laravel.