扫码关注官方订阅号
YII 中仅提供了model中进行规则验证,如何在控制器中完成参数的验证呢?
我说的不一定是验证post请求,可能是一个get请求或者update请求。 此时想方便的检查请求的参数是否符合规范,该如何处理?
业精于勤,荒于嬉;行成于思,毁于随。
之前也要做一个接口验证的功能,但是model的验证功能很有限,只能做已经有的字段验证,想要验证 比如分页 page,pagesize等参数就傻了
后来找了个验证框架加进来GUMP
GUMP
代码范例如下:
/** * @title 用户搜索参加活动的服务商 */ public function validate_doCustomRestGetList(){ $is_valid = GUMP::is_valid($_GET, array( 'text' => 'max_len,200',//搜索文本条件 'limit'=>'integer',//每页显示条数 'page'=>'integer',//当前页码 )); if(!($is_valid === true)) { $this->renderFail(ErrorConst::error(ErrorConst::ERR_PARAM)); } } //这个是具体的controller函数 public function doCustomRestGetList(){ $list = BestPartner::partnerlist(BestPartner::STATE_APPROVED,null,$this->getQuery('text'),$this->getQuery('page'),$this->getQuery('limit')); $this->renderSuccess($list); }
这个也有不好的地方:
参数规则需要重新写
对于特别结构复杂的校验支持不好
优点也有很多:
校验规则自定义,可以无限添加
https://github.com/Wixel/GUMP
yii2 $model = new Model(); if($model->load($_GET OR $_POST, '') && $model->validate()){ // 验证数据成功 return; } // 验证失败
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
之前也要做一个接口验证的功能,但是model的验证功能很有限,只能做已经有的字段验证,想要验证 比如分页 page,pagesize等参数就傻了
后来找了个验证框架加进来
GUMP代码范例如下:
这个也有不好的地方:
参数规则需要重新写
对于特别结构复杂的校验支持不好
优点也有很多:
校验规则自定义,可以无限添加
校验框架
https://github.com/Wixel/GUMP