基本例子

你可以使用 validate 方法驗證請求資料(可在基本控制器中獲得,由 ValidatesRequests 特性提供)。

如果規則通過,你的程式碼將繼續正常執行; 但是,如果驗證失敗,將自動發回包含驗證錯誤的錯誤響應:

  • 對於典型的 HTML 表單請求,使用者將被重定向到上一頁,表單保留提交的值
  • 對於期望 JSON 響應的請求,將生成具有程式碼 422 的 HTTP 響應

例如,在你的 UserController 中,你可能會在 store 方法中儲存一個新使用者,這需要在儲存之前進行驗證。

/**
 * @param  Request  $request
 * @return Response
 */
public function store(Request $request) {
    $this->validate($request, [
        'name' => 'required',
        'email' => 'email|unique:users|max:255'
    ],
    // second array of validation messages can be passed here
    [
        'name.required' => 'Please provide a valid name!',
        'email.required' => 'Please provide a valid email!',
    ]);

    // The validation passed
}

在上面的示例中,我們驗證 name 欄位是否存在非空值。其次,我們檢查 email 欄位是否具有有效的電子郵件格式,在資料庫表 users 中是唯一的,並且最大長度為 255 個字元。

|(管道)字元組合了一個欄位的不同驗證規則。

有時你可能希望在第一次驗證失敗後停止對屬性執行驗證規則。為此,請將 bail 規則分配給屬性:

$this->validate($request, [
    'name' => 'bail|required',
    'email' => 'email|unique:users|max:255'
]);

可在以下引數部分中找到可用驗證規則的完整列表。