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); ?>