thinkphp5编辑时验证唯一如何解决?
内容导读
收集整理的这篇技术教程文章主要介绍了thinkphp5编辑时验证唯一如何解决?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1719字,纯文字阅读大概需要3分钟。
内容图文
本篇文章给大家带来的内容是关于thinkphp5编辑时验证唯一如何解决? 有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。若定义了相关的验证规则,如:
namespace appsellervalidate;use thinkValidate;class Goodsmtag extends Validate{ protected $rule = [ 'name' => 'require|max:25|unique:goodsmtag', 'sort' => 'require|number|unique:goodsmtag', 'pic' => 'require', ]; protected $message = [ 'name.require' => '类别名称必须填写', 'name.max' => '类别名称长度不得大于25位', 'name.unique' => '类别名称不得重复', 'sort.require' => '排序数字必须填写', 'sort.number' => '排序必须为数字', 'sort.unique' => '排序数字不得重复', 'img.require' => '必须上传图片', ]; protected $scene = [ 'add' => [ 'name'=>'require|max:25|unique:goodsmtag', 'sort'=>'require|number|unique:goodsmtag', 'img'=>'require', ], 'edit' => [ 'name'=>'require|max:25|unique:goodsmtag', 'sort'=>'require|number|unique:goodsmtag', ], ];}
在添加界面验证的时候,提交自身的数据验证正常。
然而在编辑修改的页面验证时,提交自身数据会提示数据重复。
解决方法:
在编辑页面表单把主键id也作为数据传入到验证器中(name要和主键同名)。如:
public function editOne($id){ $data = [ 'name' => input('name'), 'isshow' => $_POST['isshow'], 'create_time' => time(), 'sort' => input('sort'), 'id' => input('id') ]; $file = request()->file('pic'); if($file){ $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads'); if($info){ $img_src = '/uploads/'.$info->getSaveName(); $img_src = str_replace('\','/',$img_src); $data['img'] = $img_src; } }else{ $old = $this->getOneById($id); $data['img'] = $old['img']; } $validate = thinkLoader::validate('Goodsmtag'); if(!$validate->scene('edit')->check($data)){ return $validate->getError(); }else{ $res = db("goodsmtag")->where("id=$id")->update($data); if($res) return true; else return false; } }
以上就是thinkphp5编辑时验证唯一如何解决?的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是为您收集整理的thinkphp5编辑时验证唯一如何解决?全部内容,希望文章能够帮你解决thinkphp5编辑时验证唯一如何解决?所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。