錯誤信息
驗證(zheng)規則的(de)錯誤提示(shi)信息(xi)有三種方式可(ke)以定義,如下:
使用默認的錯誤提示信息
如果沒有定義任(ren)何(he)的驗證提示(shi)信息,系統(tong)會(hui)顯示(shi)默認(ren)的錯誤信息,例如:
$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 之間。
可以(yi)給(gei)age字段(duan)設置(zhi)中文(wen)名,例如:
$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 之間。
驗證規則和提示信息分開定義
如果(guo)要輸出自定義的錯誤信息(xi),有(you)兩種(zhong)方(fang)式(shi)可以(yi)設(she)置(zhi)。下面(mian)的一種(zhong)方(fang)式(shi)是(shi)驗(yan)證規(gui)則和提示信息(xi)分開定義:
$rule = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
'email' => 'email',
];
$msg = [
'name.require' => '名稱必須',
'name.max' => '名稱最(zui)多不能超過25個(ge)字符',
'age.number' => '年齡必(bi)須是數字',
'age.between' => '年(nian)齡(ling)必須在1~120之間',
'email' => '郵箱格式錯(cuo)誤',
];
$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之間。
驗證規則和提示信息一起定義
可以支持驗證規則和錯誤(wu)信息一起定義的方式,如(ru)下(xia):
$rule = [
['name','require|max:25','名(ming)稱(cheng)必(bi)須(xu)|名(ming)稱(cheng)最多不能超過25個字符'],
['age','number|between:1,120','年(nian)齡(ling)必須(xu)是數字|年(nian)齡(ling)必須(xu)在1~120之間'],
['email','email','郵箱格式(shi)錯誤']
];
$data = [
'name' => 'thinkphp',
'age' => 121,
'email' => 'thinkphp@qq.com',
];
$validate = new Validate($rule);
$result = $validate->check($data);
if(!$result){
echo $validate->getError();
}
使用多語言
如果需要使用多語言驗證信息,可以在定義驗證信息的時候使用 {%語言變量} 替代 原來的驗證(zheng)錯(cuo)誤信息,例如(ru):
$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
未解決你的問題?請到「問答社區」反饋你遇到的問題
