簡體   English   中英

可選字段的 Laravel 驗證

[英]Laravel validation of optional fields

我目前有一些驗證規則如下:

\Route::post("/logError", "LogController@logError");

 //In LogController
 public function logError(Request $request) { 
    $rules = [
        "name" => "required", 
        "message" => "required",
        "level" => "in:info,debug,error"
    ];

    $this->validate($request,$rules);
    // Log the message or do whatever
});

這適用於像這樣的輸入

[ "name"=>"Not found", "message" => "Element not found", "level" => "error" ]
[ "name"=>"Not found", "message" => "Element not found" ]` 

但是,它會為輸入引發異常,例如

[ "name"=>"Not found", "message" => "Element not found", "level" => "randomgibberish" ]

我的問題是,由於“級別”是可選的,是否有一種內置方法來驗證輸入並僅刪除無效的可選元素而不是拋出驗證異常? 如果不是,我是否必須覆蓋控制器驗證方法才能實現這一點?

驗證器不會修改請求輸入數據,您需要在控制器中創建某種中間件或函數來檢查輸入參數並將它們與您希望 Laravel 檢查的參數進行比較。

所以是的,我認為您需要擴展驗證方法,或者嘗試使用僅執行此操作的輔助函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM