dan missing()
. Kaedah ini memudahkan proses pengendalian medan pilihan dan menetapkan nilai lalai, menjadikan kod anda lebih ekspresif dan dikekalkan. whenMissing()
// 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(), ]); } }
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!