模型驗證
在模型(xing)中的驗證方(fang)式如(ru)下:
$User = new User;
$result = $User->validate(
[
'name' => 'require|max:25',
'email' => 'email',
],
[
'name.require' => '名稱必須',
'name.max' => '名稱最多不能超過25個字符',
'email' => '郵箱格式錯誤',
]
)->save($data);
if(false === $result){
// 驗證失敗 輸出(chu)錯(cuo)誤信息
dump($User->getError());
}
第二個(ge)參數如果不(bu)傳的話,則采用默認的錯誤提示(shi)信息。
如果使(shi)用下(xia)面的驗證器類(lei)的話:
namespace app\index\validate;
use think\Validate;
class User extends Validate
{
protected $rule = [
'name' => 'require|max:25',
'email' => 'email',
];
protected $message = [
'name.require' => '用(yong)戶名必須',
'email' => '郵箱格(ge)式錯(cuo)誤',
];
protected $scene = [
'add' => ['name','email'],
'edit' => ['email'],
];
}
模型驗證代(dai)碼可以簡化為:
$User = new User;
// 調用當(dang)前模型對應(ying)的(de)User驗證(zheng)(zheng)器類進行數據驗證(zheng)(zheng)
$result = $User->validate(true)->save($data);
if(false === $result){
// 驗證(zheng)失敗 輸出(chu)錯誤信息
dump($User->getError());
}
如果需(xu)要(yao)調(diao)用的驗證器(qi)類(lei)和(he)當前的模型名稱不一(yi)致,則可(ke)以使用:
$User = new User;
// 調用Member驗(yan)證(zheng)器類進(jin)行(xing)數據驗(yan)證(zheng)
$result = $User->validate('Member')->save($data);
if(false === $result){
// 驗證失敗 輸出錯誤信息(xi)
dump($User->getError());
}
同(tong)樣也可以支持(chi)場景驗證:
$User = new User;
// 調用Member驗證(zheng)器(qi)類(lei)進行數(shu)據驗證(zheng)
$result = $User->validate('User.edit')->save($data);
if(false === $result){
// 驗(yan)證失敗 輸出錯誤信息(xi)
dump($User->getError());
}
文檔最后更新時間:2018-04-26 10:47:18
未解決你的問題?請到「問答社區」反饋你遇到的問題
