一,代码:创建两个validate
1,验证商品列表 创建一个validateliuhongdi@lhdpc:/data/PHP/admapi$ PHP think make:validate GoodsList Validate:app\validate\GoodsList created successfully.validate/GoodsList.PHP
<?PHP declare (strict_types = 1); namespace app\validate; use think\Validate; class GoodsList extends Validate { /** * 定义验证规则 * 格式:'字段名' => ['规则1','规则2'...] * * @var array */ protected $rule = [ 'categoryId' => 'require|integer|gt:0', 'channelId' => 'require|length:4|alphaNum', ]; /** * 定义错误信息 * 格式:'字段名.规则名' => '错误信息' * * @var array */ protected $message = [ 'categoryId.require' => '分类id必须', 'categoryId.integer' => '分类id需要是整数', 'categoryId.gt' => '分类id需大于0', 'channelId.require' => '频道id必须', 'channelId.length' => '频道id长度不为4', 'channelId.alphaNum' => '频道id需由字母和数字构成', ]; }2,验证登录 创建validate
liuhongdi@lhdpc:/data/PHP/admapi$ PHP think make:validate Login Validate:app\validate\Login created successfully.validate/Login.PHP
<?PHP declare (strict_types = 1); namespace app\validate; use think\Validate; class Login extends Validate { /** * 定义验证规则 * 格式:'字段名' => ['规则1','规则2'...] * * @var array */ protected $rule = [ 'username' => 'require|min:6|max:25', 'password' => 'require|min:6|max:10', ]; /** * 定义错误信息 * 格式:'字段名.规则名' => '错误信息' * * @var array */ protected $message = [ 'username.require' => '用户名必须', 'username.min' => '用户名最少不能低于6个字符', 'username.max' => '用户名最多不能超过25个字符', 'password.require' => '密码必须', 'password.min' => '密码最少不能低于6个字符', 'password.max' => '密码最多不能超过25个字符', ]; }
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
或: https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]
二,代码:创建一个controller
1,创建controller
liuhongdi@lhdpc:/data/PHP/admapi$ PHP think make:controller Auth Controller:app\controller\Auth created successfully.代码:
<?PHP declare (strict_types = 1); namespace app\controller; use think\Request; use app\result\Result; use think\response\Json; use app\validate\Login as LoginValidate; use app\validate\GoodsList as GoodsListValidate; use think\exception\ValidateException; class Auth { /** * 商品列表 * * @return \think\Response */ public function goodsList():Json { try { //echo "begin check:<br/>"; validate(GoodsListValidate::class) //->scene('edit') ->check($_GET); } catch (ValidateException $e) { // 验证失败 输出错误信息 //echo "get error:<br/>"; //var_dump($e->getError()); return Result::Error(422,$e->getError()); } $data = [ ['id'=>"1",'name'=>"牙刷"], ['id'=>"2",'name'=>"杯子"], ]; return Result::Success($data); } /** * 登录 * * @return \think\Response */ public function login():Json { try { //echo "begin check:<br/>"; validate(LoginValidate::class) //->scene('edit') ->check($_POST); } catch (ValidateException $e) { // 验证失败 输出错误信息 //echo "get error:<br/>"; //var_dump($e->getError()); return Result::Error(422,$e->getError()); } if ($_POST["username"] == "dddddd" && $_POST["password"] == "111111"){ //echo "success:<br/>"; return Result::Success("success"); } else { //echo "error:<br/>"; return Result::Error(422,"用户名密码错误"); } } }
三,测试效果:
1,访问:http://127.0.0.1:8000/auth/goodslist?categoryId=a返回:
http://127.0.0.1:8000/auth/goodslist?categoryId=0返回:
http://127.0.0.1:8000/auth/goodslist?categoryId=5返回:
http://127.0.0.1:8000/auth/goodslist?categoryId=5&channelId=a1@2返回:
http://127.0.0.1:8000/auth/goodslist?categoryId=5&channelId=a1ddd返回:
四,查看PHP和thinkPHP的版本:
PHP:root@lhdpc:~# PHP --version PHP 8.0.14 (cli) (built: Dec 23 2021 11:52:42) ( NTS ) copyright (c) The PHP Group Zend Engine v4.0.14, copyright (c) Zend Technologies with Zend OPcache v8.0.14, copyright (c), by Zend TechnologiesthinkPHP:
root@lhdpc:~# cd /data/PHP/admapi/ root@lhdpc:/data/PHP/admapi# PHP think version v6.0.9
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。