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

Метод whereJsonContains

Метод whereJsonContains применяется к запросу Eloquent или Query Builder и добавляет условие проверки наличия указанного значения в JSON-поле. Он полезен при работе с полями типа JSON или JSONB в базе данных. Метод принимает два параметра: имя JSON-колонки и искомое значение. В зависимости от используемой базы данных, генерируется соответствующий SQL-оператор (->> или JSON_CONTAINS).

Синтаксис

<?php Model::whereJsonContains($column, $value); ?>

Пример

Давайте найдём пользователей, у которых в JSON-поле 'options' содержится значение 'premium':

<?php use AppModelsUser; $users = User::whereJsonContains('options', 'premium')->get(); foreach ($users as $user) { echo $user->name; } ?>

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

["John Doe", "Jane Smith", "Bob Johnson"]

Пример

Давайте найдём статьи, у которых в JSON-поле 'tags' присутствует значение 'laravel':

<?php use AppModelsArticle; $articles = Article::whereJsonContains('tags', 'laravel')->get(); foreach ($articles as $article) { echo $article->title; } ?>

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

["Laravel Basics", "Advanced Laravel", "Laravel JSON Fields"]

Пример

Давайте используем метод whereJsonContains совместно с другими условиями для более точной фильтрации:

<?php use AppModelsProduct; $products = Product::where('status', 'active') ->whereJsonContains('attributes', 'premium') ->get(); foreach ($products as $product) { echo $product->name; } ?>

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

["Premium Widget", "Deluxe Gadget", "Pro Toolkit"]

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

  • метод where,
    который добавляет условие к запросу
  • метод orWhere,
    который добавляет условие через ИЛИ
  • метод whereIn,
    который фильтрует по списку значений
  • метод whereNull,
    который выбирает записи с пустым полем
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить