錯誤信息
驗證規(guī)則的錯誤提示信息有三種方式可以定義,如下:
使用默認的錯誤提示信息
如果沒有定義任何的驗證提示信息,系統(tǒng)會顯示默認的錯誤信息,例如:
$rule = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
'email' => 'email',
];
$data = [
'name' => 'thinkphp',
'age' => 121,
'email' => 'thinkphp@qq.com',
];
$validate = new Validate($rule);
$result = $validate->check($data);
if(!$result){
echo $validate->getError();
}
會輸出 age只能在 1 - 120 之間
。
可以給age字段設(shè)置中文名,例如:
$rule = [
'name' => 'require|max:25',
'age|年齡' => 'number|between:1,120',
'email' => 'email',
];
$data = [
'name' => 'thinkphp',
'age' => 121,
'email' => 'thinkphp@qq.com',
];
$validate = new Validate($rule);
$result = $validate->check($data);
if(!$result){
echo $validate->getError();
}
會輸出 年齡只能在 1 - 120 之間
。
驗證規(guī)則和提示信息分開定義
如果要輸出自定義的錯誤信息,有兩種方式可以設(shè)置。下面的一種方式是驗證規(guī)則和提示信息分開定義:
$rule = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
'email' => 'email',
];
$msg = [
'name.require' => '名稱必須',
'name.max' => '名稱最多不能超過25個字符',
'age.number' => '年齡必須是數(shù)字',
'age.between' => '年齡必須在1~120之間',
'email' => '郵箱格式錯誤',
];
$data = [
'name' => 'thinkphp',
'age' => 121,
'email' => 'thinkphp@qq.com',
];
$validate = new Validate($rule,$msg);
$result = $validate->check($data);
if(!$result){
echo $validate->getError();
}
會輸出 年齡必須在1~120之間
。
驗證規(guī)則和提示信息一起定義
可以支持驗證規(guī)則和錯誤信息一起定義的方式,如下:
$rule = [
['name','require|max:25','名稱必須|名稱最多不能超過25個字符'],
['age','number|between:1,120','年齡必須是數(shù)字|年齡必須在1~120之間'],
['email','email','郵箱格式錯誤']
];
$data = [
'name' => 'thinkphp',
'age' => 121,
'email' => 'thinkphp@qq.com',
];
$validate = new Validate($rule);
$result = $validate->check($data);
if(!$result){
echo $validate->getError();
}
使用多語言
如果需要使用多語言驗證信息,可以在定義驗證信息的時候使用 {%語言變量} 替代 原來的驗證錯誤信息,例如:
$rule = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
'email' => 'email',
];
$msg = [
'name.require' => '{%name_require}',
'name.max' => '{%name_max}',
'age.number' => '{%age_number}',
'age.between' => '{%age_between}',
'email' => '{%email_error}',
];
$data = [
'name' => 'thinkphp',
'age' => 121,
'email' => 'thinkphp@qq.com',
];
$validate = new Validate($rule,$msg);
$result = $validate->check($data);
if(!$result){
echo $validate->getError();
}
文檔最后更新時間:2018-04-26 10:46:25
未解決你的問題?請到「問答社區(qū)」反饋你遇到的問題