如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
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 <?php namespace app\common\model; use think\Loader; use think\Model; use think\Validate; class Admin extends Model { protected $pk = 'id';//主键 //设置当前模型对应的完整数据表名称 protected $table = 'mc_user'; /** * 登录 */ public function login($data) { //1.执行验证 $validate = Loader::validate('Admin'); // //如果验证不通过 if (!$validate->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 <?php namespace app\admin\validate; use think\Validate; class Admin extends Validate { protected $rule = [ 'name'=>'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 -------- <?php namespace app\common\model; use think\Model; class Category extends Model { protected $pk = 'id';//主键 //设置当前模型对应的完整数据表名称 protected $table = 'mc_cate'; //添加顶级分类 public function addcatedo($data){ //执行验证 //执行添加 $res = $this->validate(true)->save($data); if($res==false){ return ['valid'=>0,'msg'=>$this->getError()]; }else{ return ['valid'=>1,'msg'=>'添加成功']; } } } 验证器category.php ---- <?php namespace app\admin\validate; use think\Validate; class Category extends Validate { protected $rule = [ 'cname'=>'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();