laravel's whenHas
方法提供了一種基於請求數據的存在來管理條件邏輯的方法。在處理可選的表單字段和有條件更新時,這是特別有益的,從而消除了重複的存在檢查。 在特定字段觸發唯一業務規則的情況下,此方法特別有用 - 例如,電子郵件通知首選項可能需要其他驗證和存儲。
考慮用戶的電子郵件通知首選項:如果用戶選擇進入,則需要處理並保存其選擇的頻率。
的簡潔示例:whenHas
// Simple presence check $request->whenHas('name', function ($name) { // Process name if present });這是一個更實用的示例,管理通知偏好:
// app/Controllers/PreferencesController.php <?php namespace App\Http\Controllers; use App\Models\UserPreferences; use Illuminate\Http\Request; class PreferencesController extends Controller { public function update(Request $request, UserPreferences $preferences) { $request->whenHas('email_frequency', function ($frequency) use ($preferences) { $preferences->update([ 'email_frequency' => $frequency, 'last_email_update' => now() ]); }); $request->whenHas('push_enabled', function ($enabled) use ($preferences) { $preferences->update([ 'push_enabled' => $enabled, 'push_updated_at' => now() ]); }, function () use ($preferences) { $preferences->update([ 'push_enabled' => false, 'push_updated_at' => now() ]); }); return response()->json([ 'message' => 'Preferences updated successfully', 'preferences' => $preferences->fresh() ]); } }>說明性用法:
// Input data (some preferences provided) { "email_frequency": "weekly" } // Resulting Response { "message": "Preferences updated successfully", "preferences": { "email_frequency": "weekly", "last_email_update": "2024-02-01T10:30:00.000000Z", "push_enabled": false, "push_updated_at": "2024-02-01T10:30:00.000000Z" } }
方法簡化條件請求處理,導致更清潔,更可讀的代碼。 whenHas
以上是處理Laravel中的請求數據存在的詳細內容。更多資訊請關注PHP中文網其他相關文章!