ThinkPHPTP5 使用所遇到的问题(1)1.判断参数传递方式 if(request()->isPost()){ $name = $_POST['name']; $pwd = $_POST['pwd']; } 2.在model里执行数据库 ----------- login.php use think\Controller; use app\common\model\Admin; if(reques作者王明昌发布时间2018-02-23最后更新2018-02-26 1.判断参数传递方式 复制if(request()->isPost()){ $name = $_POST['name']; $pwd = $_POST['pwd']; } 2.在model里执行数据库 复制----------- login.php use think\Controller; use app\common\model\Admin; if(request()->isPost()){ $res = (new Admin())->login(input('post.')); if($res['valid']) { //说明登录成功 $this->success($res['msg'],'Index/index'); }else{ //说明登录失败 $this->error($res['msg']);exit; } } ---------- admin.php check($data)) { return ['valid' => 0, 'msg' => $validate->getError()]; } //2.比对用户名和密码是否正确 $userInfo = $this->where('name', $data['name'])->where('pwd', $data['pwd'])->where('is_admin', 1)->find(); //halt($userInfo); if (!$userInfo) { //说明在数据库未匹配到相关数据 return ['valid' => 0, 'msg' => '用户名或者密码不正确 或没有权限']; } //3.将用户信息存入到session中 session('admin', $userInfo['name']); return ['valid' => 1, 'msg' => '登录成功']; } } ------- 验证器admin.php 'require', 'pwd'=>'require', // 'code'=>'require|captcha' //相同名字的验证规则,用|隔开,只需在下新增提示消息即可 ]; protected $message = [ 'name.require'=>'请输入用户名', 'pwd.require'=>'请输入密码', // 'code.require'=>'请输入验证码', // 'code.captcha'=>'验证码不正确' ]; } 3.模版继承 复制base.html在view目录下 --------- {extend name='base' /} {block name='admin_box'} 替换的内容 {/block} --------- 4.session 复制读取 {:session('admin')} {$Think.session.admin} 5.独立验证 post传入数据,执行验证 复制//执行验证 use think\Loader; use think\Model; use think\Validate; //执行验证 $validate = new Validate([ 'pwd' => 'require', 'new_pwd' => 'require', 'confirm_pwd' => 'require|confirm:new_pwd' ],[ 'pwd.require' => '请输入原始密码', 'new_pwd.require' => '请输入新密码', 'confirm_pwd.require' => '请重复新密码', 'confirm_pwd.confirm' => '确认密码与新密码不一致' ] ); if (!$validate->check($data)) { dump($validate->getError()); } 6.修改密码功能 复制public function pwd($data){ //执行验证 $validate = new Validate([ 'pwd' => 'require', 'new_pwd' => 'require', 'confirm_pwd' => 'require|confirm:new_pwd' ],[ 'pwd.require' => '请输入原始密码', 'new_pwd.require' => '请输入新密码', 'confirm_pwd.require' => '请重复新密码', 'confirm_pwd.confirm' => '确认密码与新密码不一致' ] ); if (!$validate->check($data)) { return ['valid'=> 0,'msg'=>$validate->getError()]; } //原始密码是否正确 $userInfo = $this->where('pwd',$data['pwd'])->where('id',session('admin_id'))->find(); if(!$userInfo){ return ['valid'=>0, 'msg'=>'原始密码不正确']; } //修改密码 // save方法第二个参数为更新条件 $res = $this->save([ 'pwd' =>$data['new_pwd'], ],[$this->pk => session('admin_id')]); if($res){ return ['valid'=>1, 'msg'=>'密码修改成功']; }else{ return ['valid'=>0, 'msg'=>'密码修改失败']; } } 7.数据库的使用 复制// 定义$db protected $db; // 初始化 protected function _initialize () { parent::_initialize(); // TODO: Change the autogenerated stub $this->db = new \app\common\model\Category(); } public function addcatedo(){ if(request()->isPost()){ // dump(input('post.')); $res = $this->db->addcatedo(input('post.')); if($res['valid']) { //操作成功 $this->success($res['msg'],'index');exit; }else{ $this->error($res['msg']);exit; } } } 8.添加顶级分类 复制model 里的category.php -------- validate(true)->save($data); if($res==false){ return ['valid'=>0,'msg'=>$this->getError()]; }else{ return ['valid'=>1,'msg'=>'添加成功']; } } } 验证器category.php ---- 'require', 'sort'=>'require|number|between:1,999', ]; protected $message = [ 'cname.require'=>'请输入分类名', 'sort.require'=>'排序不能为空', 'sort.number'=>'排序必须为数字', 'sort.between'=>'数字1--999', ]; } 9.输出到页面(与tp3.2一样) 复制$this->assign('title','标题') 10.pathinfo 地址参数不能通过get方式获取 get传参 复制$cid = input('get.id'); //null $cid = input('param.id'); //可以获取 11 复制$data = $this->db->where('id',$cid)->find();
2018-02-27tp5controller与model使用数据库控制器里使用数据库 use think\Db; $info = Db::table('fly_user')->select();//用些前缀,全部查询 $info = Db::table('fly_u
2018-04-30TP5错误 | A non well formed numeric value encountered数据表字段是create_time timestamp 默认:CURRENT_TIMESTAMP 使用时间会出现以下错误: A non well formed numeric value encoun
2018-02-02tp3.2-if三层嵌套问题if标签 value1 value2 value3 if标签不支持三层嵌套,所以第三层不要用if标签,用eq标签;就能解决三层嵌套。 相等不相等 还有更多比较标签可以使用 http://documen
2018-07-04转载 | ThinkPHP5+Layui实现图片上传加预览 图片 上传图片 layui.use('upload',function(){ var upload = layui.upload, jq = layui.jquery; upload.render