Laravel開發:如何使用Laravel Validation驗證請求數據?
Laravel作為目前最流行的PHP框架之一,其原因之一就在于它提供了很多優秀的組件,其中之一是Laravel Validation。在Web開發過程中,我們常常需要驗證從前端提交的數據是否符合規范,如表單提交等,這時候就需要使用Laravel Validation組件來進行數據驗證。
本文將介紹Laravel Validation的基本用法及示例。
- 引入Validation
在Controller中引入Validator:
use IlluminateSupportFacadesValidator;
登錄后復制
- 驗證規則
Laravel Validation支持多種不同的驗證規則,包括必填、郵箱、日期等。我們可以根據需求進行選擇。下表列舉了一些常用的規則:
| 規則 | 說明 |
|---|---|
| required | 必填 |
| 郵箱格式 | |
| date | 日期格式 |
| regex | 正則匹配 |
| max | 最大長度 |
| min | 最小長度 |
- 驗證器構造
使用Laravel Validaton需要先構造一個驗證器,可以通過不同的方式進行構造,如:
使用Validator門面的make方法:
public function validate(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
'email' => 'required|email|unique:users|max:255',
'password' => 'required|min:6|max:255',
]);
if ($validator->fails()) {
return redirect('register')
->withErrors($validator)
->withInput();
}
// 驗證通過,執行代碼
}
登錄后復制使用request驗證:
public function rules()
{
return [
'name' => 'required|max:255',
'email' => 'required|email|unique:users|max:255',
'password' => 'required|min:6|max:255',
];
}
public function register(Request $request)
{
$this->validate($request, $this->rules());
// 驗證通過,執行代碼
}
登錄后復制
- 驗證錯誤信息
如果驗證失敗,可以通過withErrors方法來獲取錯誤信息,如:
if ($validator->fails()) {
return redirect('register')
->withErrors($validator)
->withInput();
}
登錄后復制
然后在視圖中調用$errors變量即可獲取對應錯誤信息:
@if ($errors->has('name'))
<span class="help-block">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
登錄后復制
- 自定義錯誤信息
在驗證器構造的第二個參數中,可以通過設置自定義錯誤信息來對驗證錯誤進行更加具體的提示,如:
public function rules()
{
return [
'name' => 'required|max:255',
'email' => 'required|email|unique:users|max:255',
'password' => 'required|min:6|max:255',
];
}
public function messages()
{
return [
'name.required' => '名稱不能為空',
'email.required' => '郵箱不能為空',
'email.email' => '請輸入正確的郵箱地址',
'email.unique' => '該郵箱已經被注冊',
'password.required' => '密碼不能為空',
'password.max' => '密碼長度不能超過:max個字符',
];
}
public function register(Request $request)
{
$validator = Validator::make($request->all(), $this->rules(), $this->messages());
if ($validator->fails()) {
return redirect('register')
->withErrors($validator)
->withInput();
}
// 驗證通過,執行代碼
}
登錄后復制
本文以上述代碼為例進行了Laravel Validation的基本介紹,希望本文能夠幫助到大家。
參考資料:
《Laravel框架》
以上就是Laravel開發:如何使用Laravel Validation驗證請求數據?的詳細內容,更多請關注www.xfxf.net其它相關文章!







