当前位置: 首页 > 后端技术 > PHP

ThinkPHP5踩过的坑

时间:2023-03-29 18:59:41 PHP

01:重定向函数在框架的初始化方法中无效。一开始是用来做权限控制的。initialize时判断是否有权限。5.0+,手册不完善,后来才知道必须return$this->redirect();在你跳转之前(重定向);完整代码:if(!oAuth($uid))return$this->redirect($url);02:分页参数的问题。如果是正常分页,没有问题,但是分页后面还有其他参数,比如条件查询后分页。单击下一页时,参数将消失。解决方法:第三部分分页传参:['query'=>request()->param()]完整代码Db::User->where($where)->order($order)->paginate($pageSize,//每页数量false,//是否关闭简洁分页简单分页很简单,简单分页不会查询条目总数,相对来说应该快一点,只有按钮上一页和下一页['query'=>request()->param()]);//附加参数03:验证器中唯一的验证场景:一个手机号只能注册一次,但编辑时可以使用当前手机号!验证码:protected$rule=['mobile'=>'require|mobile|unique:user,mobile','email'=>'require|email|unique:user,email',];protected$message=['mobile.require'=>'请输入电话号码!','mobile.mobile'=>'手机号码格式错误!',];但是更新的时候会提示手机号已经存在。我很生气。当时找不到资料,就看日志,终于在日志里找到了;输入数据时,只需传入ID,验证器会自动排除主键为当前ID的数据;04:模型的关联方法之前用于每个查询。会使用动态关联延迟预加载:with后来发现不写是可以的,不写则不会执行关联查询,在视图中调用时直接使用即可。例如:文章对应发布者:publicfunctionarticle($id){return$this->find(id);//之前写的return$this->with('user')->find($id);}publicfunctionuser(){return$this->hasOne('User','id','uid');}//模板里{{$article.user.nickName}}后面会写更多