控制器驗(yàn)證
如果你需要在控制器中進(jìn)行驗(yàn)證,并且繼承了\think\Controller
的話,可以調(diào)用控制器類(lèi)提供的validate
方法進(jìn)行驗(yàn)證,如下:
$result = $this->validate(
[
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com',
],
[
'name' => 'require|max:25',
'email' => 'email',
]);
if(true !== $result){
// 驗(yàn)證失敗 輸出錯(cuò)誤信息
dump($result);
}
如果定義了驗(yàn)證器類(lèi)的話,例如:
namespace app\index\validate;
use think\Validate;
class User extends Validate
{
protected $rule = [
'name' => 'require|max:25',
'email' => 'email',
];
protected $message = [
'name.require' => '用戶名必須',
'email' => '郵箱格式錯(cuò)誤',
];
protected $scene = [
'add' => ['name','email'],
'edit' => ['email'],
];
}
控制器中的驗(yàn)證代碼可以簡(jiǎn)化為:
$result = $this->validate($data,'User');
if(true !== $result){
// 驗(yàn)證失敗 輸出錯(cuò)誤信息
dump($result);
}
如果要使用場(chǎng)景,可以使用:
$result = $this->validate($data,'User.edit');
if(true !== $result){
// 驗(yàn)證失敗 輸出錯(cuò)誤信息
dump($result);
}
在validate方法中還支持做一些前置的操作回調(diào),使用方式如下:
$result = $this->validate($data,'User.edit',[],[$this,'some']);
if(true !== $result){
// 驗(yàn)證失敗 輸出錯(cuò)誤信息
dump($result);
}
文檔最后更新時(shí)間:2018-04-26 10:47:01
未解決你的問(wèn)題?請(qǐng)到「問(wèn)答社區(qū)」反饋你遇到的問(wèn)題