Оновлення роботи з JSON-колонками в Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 19 лютого, 2025
Ларавел пропонує елегантний спосіб оновлення JSON-стовпців у базі даних за допомогою стрілкової синтаксики. Дізнайтеся, як ця функція дозволяє вносити точні зміни в JSON-дані без необхідності оновлення всього стовпця!

Laravel пропонує елегантний спосіб оновлення JSON-стовпців у вашій базі даних завдяки синтаксису стрілки. Ця функція дозволяє точно модифікувати дані JSON без необхідності оновлювати цілі стовпці.

Синтаксис стрілки (->) забезпечує прямий доступ до ключів JSON у ваших запитах:

$affected = DB::table('users')
    ->where('id', 1)
    ->update(['options->enabled' => true]);

Ви також можете працювати з вкладеними структурами JSON у більш складних моделях даних:

class ConfigurationController extends Controller
{
    public function updateUserSettings($userId, $section, $value)
    {
        return DB::table('users')
            ->where('id', $userId)
            ->update(["settings->config->$section" => $value])
            ? 'Налаштування успішно оновлено'
            : 'Помилка оновлення';
    }
}
 
// міграція
Schema::create('users', function (Blueprint $table) {
    $table->id();
    $table->json('settings');
    $table->timestamps();
});

Laravel прозоро обробляє конверсію між типами даних PHP та структурами JSON, генеруючи відповідний SQL для вашої системи бази даних. Цей підхід особливо корисний для застосунків, які потребують гнучкого зберігання даних без надмірності додаткових таблиць бази даних