ThinkPHP6推荐使用验证器,可以在控制器中使用validate助手函数(或者封装验证方法)进行验证。
首先在模块下创建validate文件夹,创建一个名为checkLogin.php的文件,用来验证登录信息
也可以可以使用下面的指令快速生成checkLogin验证器。
php think make:validate admin\checkLogin
<?php
/**
*
* User: 简忆
* Date: 2020/9/20
* Email: <2938039696@qq.com>
**/
namespace app\admin\validate;
use think\Validate;
class checkLogin extends Validate
{
protected $rule = [
'admin_name' => 'require',
'admin_password' => 'require',
'captcha' => 'require',
];
protected $message = [
'admin_name.require' => '请输入账号',
'admin_password.require' => '请输入密码',
'captcha.require' => '请输入验证码',
];
}
?>控制器方法中使用:
<?php
$data=[
'captcha'=>$request->param('captcha'),
'admin_name'=>$request->param('admin_name'),
'admin_password'=>$request->param('admin_password')
];
$validate = new \app\union\validate\checkLogin();
$result = $validate->check($data);
if(!$result){
return returnJson('500',$validate->getError());
}
?>验证场景:验证器支持定义场景,并且验证不同场景的数据,例如:
<?php
/**
*
* User: 简忆
* Date: 2020/9/20
* Email: <2938039696@qq.com>
**/
namespace app\admin\validate;
use think\Validate;
class checkLogin extends Validate
{
protected $rule = [
'admin_name' => 'require',
'admin_password' => 'require',
'captcha' => 'require',
];
protected $message = [
'admin_name.require' => '请输入账号',
'admin_password.require' => '请输入密码',
'captcha.require' => '请输入验证码',
];
protected $scene = [
'edit' => [' admin_name ',' admin_password '],
];
}
?>控制器方法中使用:
<?php
$result = $validate->scene('edit')->check($data);
?>