Обробка значень за замовчуванням у Laravel Request за допомогою mergeIfMissing

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 27 листопада, 2024
Вам цікаво дізнатися, як спростити обробку необов'язкових полів у своїх Laravel-додатках? Досліджуйте можливості методу mergeIfMissing, який дозволяє ефективно задавати значення за замовчуванням без перезапису вже наявних даних

Створюючи веб-додатки, часто виникає потреба в обробці необов'язкових полів і наданні значень за замовчуванням. Laravel спрощує це завдання за допомогою методу mergeIfMissing, доступного в об'єкті запиту. Цей метод елегантно дозволяє додавати значення за замовчуванням до ваших даних запиту, не перезаписуючи вже наявні значення. Давайте розглянемо, як ця можливість може поліпшити ваші Laravel-додатки.

# Як працює mergeIfMissing()

Метод mergeIfMissing додає вказаний масив до даних запиту, але тільки для тих ключів, які ще не присутні в запиті. Синтаксис простий:

$request->mergeIfMissing(['key' => 'default_value']);

# Реальне застосування

Розглянемо практичний приклад, де ми створюємо систему для додавання постів. Нам потрібно, щоб певні поля мали значення за замовчуванням, якщо не були вказані в запиті.

Ось як ми можемо реалізувати це за допомогою mergeIfMissing:

<?php

namespace App\Http\Controllers;

use App\Models\Post;
use Illuminate\Http\Request;

class BlogPostController extends Controller
{
    public function createPost(Request $request)
    {
        $request->mergeIfMissing([
            'view_count' => 0,
            'engagement_count' => 0,
            'post_status' => 'draft',
            'publication_date' => null,
        ]);

        $blogPost = Post::create($request->all());

        return response()->json($blogPost, 201);
    }
}

У цьому прикладі mergeIfMissing допомагає нам:

Ось як виглядають вхідні та вихідні дані:

// POST /api/posts
// Вхід (мінімальний)
{
    "title": "Getting Started with Laravel",
    "content": "Laravel is a powerful framework..."
}
 
// Вихід
{
    "id": 1,
    "title": "Getting Started with Laravel",
    "content": "Laravel is a powerful framework...",
    "post_status": "draft",
    "view_count": 0,
    "engagement_count": 0,
    "publication_date": null,
    "created_at": "2024-03-15T10:00:00.000000Z",
    "updated_at": "2024-03-15T10:00:00.000000Z"
}
 
// Вхід (з деякими вказаними полями)
{
    "title": "Advanced Laravel Tips",
    "content": "Here are some advanced Laravel tips...",
    "post_status": "published",
    "publication_date": "2024-03-15T12:00:00.000000Z"
}
 
// Вихід
{
    "id": 2,
    "title": "Advanced Laravel Tips",
    "content": "Here are some advanced Laravel tips...",
    "post_status": "published",
    "view_count": 0,
    "engagement_count": 0,
    "publication_date": "2024-03-15T12:00:00.000000Z",
    "created_at": "2024-03-15T12:00:00.000000Z",
    "updated_at": "2024-03-15T12:00:00.000000Z"
}

Використання mergeIfMissing() забезпечує зручний спосіб обробки необов'язкових полів у ваших Laravel-додатках. Це особливо корисно при роботі з формами чи API, де деякі поля можуть бути необов'язковими, але вам потрібно зберегти однорідну структуру даних у вашому застосунку

Популярні

Logomark Logotype

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

Logomark Logotype

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю