PHP:
【PHP】
了解项目结构
-
Controller是控制层
-
View是视图层
-
- 从pulic’下面复制模板-
-
在view层创建admin文件夹,粘贴进去
-
在controller层创建Admin文件夹(注意大写),创建和模板相同名字的控制器。
如图所示
登录:
- Login.html
记得改路径
令牌使用
-
三步走:找到login.html 找到标签,添加{:token}
-
只需要在规则里面添加 token就可以了,名称都是一样的
'__token__' => ['token']
数据的验证
- 在Application文件下创建和view同级的文件夹 validate
密码的验证
- 注意1,2,3三个地方:
规则写在: $rule里面,验证语句写在 $message里面,都是protected
DB的操作
- where
Db::name('admin')->where('username',$params['username'])->findOrEmpty();
- 判断用户名是否一致(用在登录验证)
$userInfo = Db::name('admin')->where('username',$params['username'])->findOrEmpty();
Session的操作
session 写在登录判断成功语句之后
登录页面显示admin101
-
如图所示这么写:
-
因为静态文件写在 User/login.html里面
-
所以要去 controller层里面的User.php里面
-
写一个和 login.html同名的函数
-
加入下面这句话
$this->assign("customer","admin001");
- get
$username = Session::get("adminInfo")['username'];
- set
$userAdmin = Session::get("adminInfo");$this->assign("userAdmin", $userAdmin['username']);
搜索功能
-
在show_list.html里面找到 搜索函数
-
修改url的跳转地址(自定义)
-
在admin.php里面创建 dataSearch_user函数(静态页面自定义的函数)
-
书写搜索DB操作
-
还是在上面这个function里面
$map[] = ['username','=',$searchParams['username']];$pageData = Db::name("admin")->where($map)->paginate($pageSize)->toArray();
- 返回的格式固定
return [ 'code'=>0, 'message'=>"请求成功", 'count'=>$pageData['total'],//总的数据 'data'=>$pageData['data'], 'page'=>Request::get("page"), 'limit'=>Request::get("limit"), 'query'=>$searchParams ];
访问页面
数据渲染
- 四步走
-
定义渲染的页面在view视图层里面
-
找到function叫做table的地方
-
改变url的地址,地址随便写,最后要到admin里面去创建相同名称的function
'{:url("get_admin_list")}'
- 在 cols里面布局你要的数据
完成上面的四个,只是完成了静态页面的配置,还要去controller里面创建function
- controller层
-
在admin里面写,设置function函数
-
蓝色框框里面的不要写
-
标号1-4照抄(实在不会去 F盘里面找planA,找 admin101里面的controller里面的admin,按ctrl+F打开搜索,)
结果如下图所示:
数据提交
管理员信息更新修改
-
在管理员修改页面找到监听提交的位置
-
添加ajax的代码,ajax
$.ajax({ //url: '/admin028/User/doLogin', url: '{:url("show_basic_confirm",["a"=>1,"b"=>2],".html",true)}', type: 'post', data: index, success: function (res) { console.log(res) if(res.code == 200) { layer.msg('success', function () { window.location.reload(); window.location.href = '{:url("admin/show_basic_info")}'; }) } else { // code fail renew delete update clear layer.alert(res.message) } }, error:function () { } })return false;
-
到 controller层去找show_basic_confirm
-
先判断用户名是否存在
假设要求用户名不能被修改,直接显示
如下图所示创建判断语句:
-
创建校验,如何引入校验去这篇文档查看 > 数据的校验
-
paramGe是一个新的函数在这个函数的上面写入
如下图所示:
代码直接复制:
$adminInfo = Db::name('admin')->where('username',Session::get("adminInfo")['username']); $program = [ [ 'admin_id' => $adminInfo['id'], 'create_ip' => Request::ip(), 'create_at' => date('Y-m-d H:i:s'), 'module' => Request::module(), 'controller' => Request::controller(), 'params' => json_encode(Request::param()), 'user_agent' => Request::header("user_agent"), ] ]; Db::name('admin_log')->insertAll($program);
生成日志记录
在admin里面 deal_menager函数里面直接复制
$search = Db::name('admin')->where("username",$params['username'])->findOrEmpty(); $program = [ 'admin_id' => $search['id'], 'create_ip' => Request::ip(), 'create_at' => date('Y-m-d H:i:s'), 'module' => Request::module(), 'controller' => Request::controller(), 'params' => json_encode(Request::param()), 'user_agent' => Request::header("user_agent"), ]; Db::name('admin_log')->insert($program);
如下图所示:
添加管理员
public function deal_manager(){ $params = [ 'username' => Request::post('username'), 'password' => Request::post('password'), ]; $result = Db::name("admin")->where("username",$params['username'])->findOrEmpty(); $ManagerCheck=new ManagerCheck(); if(!$ManagerCheck->check($params)) { $res = [ "code"=>201, "message"=>"账号密码格式不正确", ]; return json($res); } if($result) { $res = [ "code"=>202, "message"=>"账号已经存在", ]; return json($res); } $data = [ 'username' => $params['username'], 'password' => password_hash($params['password'],PASSWORD_DEFAULT), 'create_at' => date('Y-m-d H:i:s'), 'update_at' => date('Y-m-d H:i:s'), 'last_ip' => Request::ip() ]; Db::name("admin")->insert($data); $res = [ "code"=>200, "message"=>"账号创建成功", "data"=>$data ]; $search = Db::name('admin')->where("username",$params['username'])->findOrEmpty(); $program = [ 'admin_id' => $search['id'], 'create_ip' => Request::ip(), 'create_at' => date('Y-m-d H:i:s'), 'module' => Request::module(), 'controller' => Request::controller(), 'params' => json_encode(Request::param()), 'user_agent' => Request::header("user_agent"), ]; Db::name('admin_log')->insert($program); return json($res); } public function add_manager(){ return $this->fetch(); }
创建侧边菜单栏
操作方式:
-
在public目录下找到api文件夹
-
api文件夹下面找到init.json文件
-
init.json文件里面找到 “menuinfo”
-
在menuinfo模仿其他的格式写一个
如下图所示:
数据库创建字段
- 数据库实在不会写没有关系,上面那些代码要写进去,模板复制清楚
- username , password , id 三个就可以
-
数据库在这里,创建上面的三个字段就可以
-
三个字段名 username , password , id
来源地址:https://blog.csdn.net/qq_50767141/article/details/130935764