Rumah >pembangunan bahagian belakang >tutorial php >Mengendalikan data permintaan yang hilang di Laravel

Mengendalikan data permintaan yang hilang di Laravel

Johnathan Smith
Johnathan Smithasal
2025-03-05 15:40:10231semak imbas

Handling Missing Request Data in Laravel

Laravel menyediakan cara yang elegan untuk menguruskan data permintaan yang hilang, iaitu

dan missing(). Kaedah ini memudahkan proses pengendalian medan pilihan dan menetapkan nilai lalai, menjadikan kod anda lebih ekspresif dan dikekalkan. whenMissing()

mari kita lihat contoh sistem kemas kini persediaan yang fleksibel:

// app/Controllers/SettingsController.php
<?php namespace App\Http\Controllers;

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

class SettingsController extends Controller
{
    public function update(Request $request, Settings $settings)
    {
        $updates = [];

        // 处理主题偏好设置
        $request->whenMissing('theme', function () use (&$updates) {
            $updates['theme'] = [
                'mode' => 'system',
                'color' => 'blue',
            ];
        }, function () use (&$updates, $request) {
            $updates['theme'] = [
                'mode' => $request->input('theme.mode', 'light'),
                'color' => $request->input('theme.color', 'blue'),
            ];
        });

        // 处理通知设置
        if ($request->missing('notifications')) {
            $updates['notifications'] = [
                'email' => true,
                'push' => false,
                'frequency' => 'daily',
            ];
        } else {
            $updates['notifications'] = $request->input('notifications');
        }

        $settings->update($updates);

        return response()->json([
            'message' => 'Settings updated successfully',
            'settings' => $settings->fresh(),
        ]);
    }
}
Contoh penggunaan:

Kaedah
// 最小数据输入
{
    "notifications": {
        "email": true,
        "push": true
    }
}
// 响应
{
    "message": "Settings updated successfully",
    "settings": {
        "theme": {
            "mode": "system",
            "color": "blue"
        },
        "notifications": {
            "email": true,
            "push": true,
            "frequency": "daily"
        }
    }
}

// 完整数据输入
{
    "theme": {
        "mode": "dark",
        "color": "purple"
    },
    "notifications": {
        "email": false,
        "push": true,
        "frequency": "weekly"
    }
}

dan missing() menyediakan cara ringkas untuk memproses data permintaan pilihan sambil mengekalkan kod yang boleh dibaca. Mereka amat berguna apabila mengendalikan borang pengguna atau permintaan API yang dikemukakan dan dapat dengan berkesan mengelakkan kesilapan yang disebabkan oleh data yang hilang. whenMissing()

Atas ialah kandungan terperinci Mengendalikan data permintaan yang hilang di Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn