擴充套件
// 擴充套件驗證方法
Validator::extend('valid_code',function ($attribute, $value, $parameters, $validator){
return strlen($value) == 5;
},'編號不符合 :valid_year 年的要求');
// extendImplicit與extend的區別: 即使該欄位規則中沒有required也執行該驗證
Validator::extendImplicit('valid_code',function ($attribute, $value, $parameters, $validator){
return strlen($value) == 5;
},'編號不符合 :valid_year 年的要求');
// 替換該驗證規則中的佔位符
Validator::replacer('valid_code', function($message, $attribute, $rule, $parameters) {
return str_replace(':valid_year','2017',$message);
});
$validator = Validator::make($input,[
'code'=>'required|valid_code',
]);
// code.valid_code 若錯誤返回資訊"編號不符合 2017 年的要求"
定義驗證詳解
$validatorStatus = $validator->passes(); //(bool)執行驗證並返回是否驗證成功
$validatorErrors = $validator->errors()->all();//(array)返回獲得的錯誤資訊陣列
if(!$validatorStatus){
return redirect('login')
->withErrors($validatorErrors)
->withInput();
}
驗證與獲取結果
$validator = Validator::make($input,[
'code'=>'required|captcha',
],[
'code.captcha'=>'The :attribute is invalid .'
],[
'code'=>'code of captcha'
]);
// The code of captcha is invalid .
Validator::make($rules,$messages,$customAttributes)
- rules: 定義驗證規則
- messages: 定義錯誤資訊
- customAttributes: 定義欄位別名用於替換錯誤資訊中的
:attribute
.
若驗證失敗返回錯誤資訊為The code of captcha is invalid .
不定義customAttributes錯誤資訊為The code is invalid .
個人部落格 http://blog.xcxxkj.com
程式碼倉庫 https://github.com/sleep-cat
本作品採用《CC 協議》,轉載必須註明作者和本文連結