thinkphp5.1验证器场景验证中传参的方法。
程序员文章站
2023-09-09 08:52:00
一个场景:用户保存自己的昵称,如果已经有其他用户用了这个昵称则不允许保存,但是要排除当前用户自己,因为如果用户未作修改,新昵称和老昵称一样,是可以保存的。 因为昵称定义了唯一规则: 所以即便是当前用户也不能保存未经修改一样的昵称。 解决方法:在控制器中,就把uid(主键)通过验证器唯一通道 $dat ......
一个场景:用户保存自己的昵称,如果已经有其他用户用了这个昵称则不允许保存,但是要排除当前用户自己,因为如果用户未作修改,新昵称和老昵称一样,是可以保存的。
因为昵称定义了唯一规则:
'name' => 'unique:user',
所以即便是当前用户也不能保存未经修改一样的昵称。
解决方法:在控制器中,就把uid(主键)通过验证器唯一通道 $data参数传递给验证器
//控制器代码
$data['uid'] = 10;
$validate = $this->validate($data, 'app\common\validate\user.info');
这样,验证器就会自动排除当前主键,当前主键可以顺利保存。不会被唯一性束缚。
有遇到同样问题的小伙伴,可以参考。
下一篇: 色彩缤纷的搞笑图片,恶搞,恋爱,手下败将
推荐阅读
-
thinkphp5.1验证器场景验证中传参的方法。
-
yii2 在控制器中验证请求参数的使用方法
-
jQuery Validator验证Ajax提交表单的方法和Ajax传参的方法
-
thinkphp5.1验证器场景验证中传参的方法。
-
yii2 在控制器中验证请求参数的使用方法
-
实例讲解nodejs中express获取get和post传值及session验证的方法
-
实例详解jQuery Validator验证Ajax提交表单的方法和Ajax传参的方法
-
【PHP】TP5.1验证器在场景验证中传参的使用
-
jQuery Validator验证Ajax提交表单的方法和Ajax传参的方法(图文教程)
-
实例详解jQuery Validator验证Ajax提交表单的方法和Ajax传参的方法