Вы устали иметь дело с нулевыми значениями в своих приложениях Laravel? Не смотрите дальше! В этой статье блога мы рассмотрим чудеса метода whereNotNull
Laravel — мощного инструмента для фильтрации ненулевых значений в запросах к базе данных.
Но сначала давайте поговорим о том, что на самом деле делает whereNotNull
. Как следует из названия, он позволяет получать записи базы данных, в которых значение определенного столбца не равно нулю. Это особенно полезно, если вы хотите исключить записи с отсутствующими или пустыми значениями, чтобы ваши данные всегда были чистыми и надежными.
Теперь давайте углубимся в несколько практических примеров использования whereNotNull
в вашем коде:
-
Базовое использование:
$users = DB::table('users') ->whereNotNull('email') ->get();
В этом примере мы извлекаем всех пользователей из таблицы
users
, столбецemail
которого не равен нулю. Это может быть удобно, если вы хотите получить информацию только о пользователях с действительными адресами электронной почты. -
Связка с другими методами запроса:
$products = Product::whereNotNull('price') ->where('stock', '>', 0) ->orderBy('created_at', 'desc') ->get();
Здесь мы фильтруем модель
Product
, чтобы получить только те продукты с ненулевым значениемprice
, доступнымиstock
, и сортируем их по даты их создания в порядке убывания. Вы можете объединитьwhereNotNull
с другими методами запроса для создания более сложных и точных запросов. -
Объединение с отношениями:
$posts = Post::whereNotNull('published_at') ->whereHas('category', function ($query) { $query->whereNotNull('name'); }) ->get();
В этом примере мы извлекаем все сообщения с ненулевой датой
published_at
и принадлежащие к категории с ненулевой датойname
. Здесь показано, какwhereNotNull
можно использовать в сочетании со связями для фильтрации записей в связанных таблицах. -
Использование красноречивой модели:
class User extends Model { public function scopeActive($query) { return $query->whereNotNull('activated_at'); } }
Определив метод области действия в вашей модели Eloquent, вы можете инкапсулировать логику
whereNotNull
и повторно использовать ее в своей кодовой базе. В этом случае областьactive
возвращает всех пользователей, у которых есть ненулевая отметка времениactivated_at
.
Благодаря этим примерам вы теперь имеете четкое представление о том, как использовать метод whereNotNull
в Laravel для фильтрации ненулевых значений в запросах к базе данных. Чистые и надежные данные находятся на расстоянии одного запроса!