
*============创建栏目文件============↓ D:\phpStudy\WWW\niwo\application\admin\controller 复制 粘贴Admin文件,重命名Cate(栏目) D:\phpStudy\WWW\niwo\application\admin\model 复制 粘贴Admin文件,重命名Cate(栏目) D:\phpStudy\WWW\niwo\application\admin\validate 复制 粘贴Admin文件,重命名Cate(栏目) D:\phpStudy\WWW\niwo\application\admin\view 复制 粘贴Admin文件,重命名cate(栏目) *============创建栏目文件============↑
*============在视图和公共文件里,创建栏目管理列表============↓ D:\phpStudy\WWW\niwo\application\admin\view\common\left.html 复制内容: <li> <a href="#" class="menu-dropdown"> <i class="menu-icon fa fa-link"></i> <span class="menu-text">友情链接</span> <i class="menu-expand"></i> </a> <ul class="submenu"> <li> <a href="{:url('links/lst')}"> <span class="menu-text"> 链接列表 </span> <i class="menu-expand"></i> </a> </li> </ul> </li> 内容添加修改为: <li> <a href="#" class="menu-dropdown"> <i class="menu-icon fa fa-user"></i> <span class="menu-text">管理员</span> <i class="menu-expand"></i> </a> <ul class="submenu"> <li> <a href="{:url('admin/lst')}"> <span class="menu-text"> 管理列表 </span> <i class="menu-expand"></i> </a> </li> </ul> </li> <li> <a href="#" class="menu-dropdown"> <i class="menu-icon fa fa-list"></i> <span class="menu-text">栏目管理</span> <i class="menu-expand"></i> </a> <ul class="submenu"> <li> <a href="{:url('cate/lst')}"> <span class="menu-text"> 栏目列表 </span> <i class="menu-expand"></i> </a> </li> </ul> </li> http://www.yidt.cn/Home/FontAwesome Dashboard Elements Icons FontAwesome 换图标 <i class="menu-icon fa fa-link"></i> 修改为: <i class="menu-icon fa fa-list"></i> *============在视图和公共文件下,创建栏目管理列表============↑
*============在控制器里,创建栏目和栏目模块内容============↓ D:\phpStudy\WWW\niwo\application\admin\controller\Cate.php 修改内容: <?php namespace app\admin\controller; use think\Controller; use app\admin\model\Cate as CateModel; class Cate extends Controller { public function lst() { $list = CateModel::paginate(3);// 分页输出列表 每页显示3条数据 $this ->assign('list',$list); // 把$list,分配到模板list return $this->fetch(); //把数据返回给视图。 } public function add() { if(request()->isPost()){ $data=[ 'username'=>input('username'), 'password'=>input('password'), ]; $validate = \think\Loader::validate('cate'); //实例化validate if(!$validate->scene('add')->check($data)){ //在add场景下,验证$data里面的数据,如果验证没有通过 $this->error($validate->getError()); die; } if(db('cate')->insert($data)){ return $this->success('栏目名称添加成功!','lst'); }else{ return $this->error('栏目名称添加失败!'); } return; } return $this->fetch(); } public function edit(){ $id = input('id'); $cates = db('cate')->find($id); if(request()->isPost()){ $data = [ 'id' =>input('id'), 'username' =>input('username'), ]; if(input('password')){ // 如果修改管理员密码 $data['password'] = md5(input('password')); // 在$data数组中修改,然后加密 }else{ $data['password'] = $cates['password']; // 否则密码留空,用原有密码 } $validate = \think\Loader::validate('cate'); if(!$validate->scene('edit')->check($data)){ // 在编辑场景验证 $this->error($validate->getError()); die; } if(db('cate')->update($data)){ // $this->success('修改管理员成功!','lst'); }else{ $this->error('修改管理员失败!'); } return; } $this->assign('cates',$cates); return $this->fetch(); } public function del(){ // 删除的方法 $id = input('id'); // 把input('id')赋值给$id if($id != 1) { // 如果$id不等于1 if (db('cate')->delete(input('id'))) { $this->success('删除管理员成功!', 'lst'); } else { $this->error('删除管理员失败!'); } }else{ $this->error('初始化管理员不能删除!'); } } } D:\phpStudy\WWW\niwo\application\admin\model\Cate.php 修改内容: <?php namespace app\admin\model; use think\Model; // 引入模型这个类 class Cate extends Model // 继承模块这个类 { } D:\phpStudy\WWW\niwo\application\admin\validate\Cate.php 修改内容: <?php namespace app\admin\validate; use think\Validate; class cate extends Validate { } http://127.0.0.1/niwo/public/index.php/admin/cate/lst.html *============在控制器下,创建栏目和栏目模块内容============↑
*============在视图里,修改栏目列表和栏目添加里的内容============↓ D:\phpStudy\WWW\niwo\application\admin\view\cate\lst.html 把“用户”,全部替换成“栏目”。 http://127.0.0.1/niwo/public/index.php/admin/cate/lst.html D:\phpStudy\WWW\niwo\application\admin\view\cate\add.html 把“管理员”,全部替换成“栏目”。 http://127.0.0.1/niwo/public/index.php/admin/admin/add.html 没有改变,链接地址问题! D:\phpStudy\WWW\niwo\application\admin\view\cate\lst.html 原内容 <button type="button" tooltip="添加栏目" class="btn btn-sm btn-azure btn-addon" onClick="javascript:window.location.href = '{:url('admin/add')}'"> <i class="fa fa-plus"></i> Add 修改内容: <button type="button" tooltip="添加栏目" class="btn btn-sm btn-azure btn-addon" onClick="javascript:window.location.href = '{:url('cate/add')}'"> <i class="fa fa-plus"></i> Add http://127.0.0.1/niwo/public/index.php/admin/cate/add.html 刷新就对了! D:\phpStudy\WWW\niwo\application\admin\view\cate\add.html 删除以下内容: <div class="form-group"> <label for="group_id" class="col-sm-2 control-label no-padding-right">栏目密码</label> <div class="col-sm-6"> <input class="form-control" id="password" placeholder="" name="password" |type="text"> </div> <p class="help-block col-sm-4 red">* 必填</p> </div> 原内容 <div class="col-sm-6"> <input class="form-control" id="username" placeholder="" name="username" | type="text"> </div> 修改为: <div class="col-sm-6"> <input class="form-control" id="catename" placeholder="" name="catename" | type="text"> </div> *============在视图下、修改栏目列表和栏目添加里的内容============↑
*============在控制器下、修改栏目文件和栏目列表内容============↓ D:\phpStudy\WWW\niwo\application\admin\controller\Cate.php 原内容 public function add() { if(request()->isPost()){ $data=[ 'username'=>input('username'), 'password'=>input('password'), ]; $validate = \think\Loader::validate('Cate'); if(!$validate->scene('add')->check($data)){ $this->error($validate->getError()); die; } if(db('cate')->insert($data)){ return $this->success('添加管理员成功!','lst'); }else{ return $this->error('添加管理员失败!'); } return; } return $this->fetch(); } 修改为: public function add() { if(request()->isPost()){ $data=[ 'catename'=>input('catename'), ]; $validate = \think\Loader::validate('Cate'); if(!$validate->scene('add')->check($data)){ $this->error($validate->getError()); die; } if(db('cate')->insert($data)){ // 将数据库的admin表格修改成数组$data形式 return $this->success('栏目名称添加成功!','lst'); }else{ return $this->error('栏目名称添加失败!'); } return; } return $this->fetch(); } http://127.0.0.1/niwo/public/index.php/admin/cate/lst.html 类的属性不存在:app\admin\model\Cate->username 解决方法: D:\phpStudy\WWW\niwo\application\admin\view\cate\lst.html 原内容 <tr> <td align="center">{$vo.id}</td> <td align="center">{$vo.username}</td> <td align="center"> <a href="{:url('admin/edit',array('id'=>$vo['id']))}" class="btn btn-primary btn-sm shiny"> <i class="fa fa-edit"></i> 编辑 </a> {if condition="$vo['id'] neq 1"} 修改为: <tr> <td align="center">{$vo.id}</td> <td align="center">{$vo.catename}</td> <td align="center"> <a href="{:url('admin/edit',array('id'=>$vo['id']))}" class="btn btn-primary btn-sm shiny"> <i class="fa fa-edit"></i> 编辑 </a> http://127.0.0.1/niwo/public/index.php/admin/cate/lst.html 刷新成功! *============在控制器里,修改栏目文件和栏目列表内容============↑
*============在验证器里,验证栏目列表内容的唯一性============↓ D:\phpStudy\WWW\niwo\application\admin\validate\Cate.php 修改内容: <?php namespace app\admin\validate; use think\Validate; class Cate extends Validate { // 验证规则就写在这个数组里面 protected $rule = [ 'catename' => 'require|max:25', ]; // 错误提示 protected $message = [ 'catename.require' => '栏目名称必须填写', 'catename.max' => '栏目名称长度不能大于25位', ]; // 验证 scene 场景 protected $scene = [ 'add' => ['catename'=>'require'], // 在添加场景限定[]里的验证 'edit' => ['catename'=>'require'], ]; } // 验证栏目标题唯一性,|unique:cate <?php namespace app\admin\validate; use think\Validate; class Cate extends Validate { // 验证规则就写在这个数组里面 protected $rule = [ 'catename' => 'require|max:25|unique', ]; // 错误提示 protected $message = [ 'catename.require' => '栏目名称必须填写', 'catename.max' => '栏目长度不能大于25位', 'catename.unique' => '栏目名称不能重复', ]; // 验证 scene 场景 protected $scene = [ 'add' => ['catename'=>'require|unique:cate'], // 在添加场景限定[]里的验证 |unique:cate// 验证栏目标题唯一性 'edit' => ['catename'=>'require|unique:cate'], ]; } http://127.0.0.1/niwo/public/index.php/admin/cate/add.html catename已存在,修改成功! *============在验证器里,验证栏目列表内容的唯一性============↑
*============在视图里,删除栏目列表内容============↓ D:\phpStudy\WWW\niwo\application\admin\view\cate\lst.html 原内容 <a href="{:url('admin/edit',array('id'=>$vo['id']))}" class="btn btn-primary btn-sm shiny"> <i class="fa fa-edit"></i> 编辑 </a> <a href="#" onClick="warning('确实要删除吗', '{:url('admin/del',array('id'=>$vo['id']))}')" class="btn btn-danger btn-sm shiny"> <i class="fa fa-trash-o"></i> 删除 </a> 修改为: <a href="{:url('cate/edit',array('id'=>$vo['id']))}" class="btn btn-primary btn-sm shiny"> <i class="fa fa-edit"></i> 编辑 </a> <a href="#" onClick="warning('确实要删除吗', '{:url('cate/del',array('id'=>$vo['id']))}')" class="btn btn-danger btn-sm shiny"> <i class="fa fa-trash-o"></i> 删除 </a> D:\phpStudy\WWW\niwo\application\admin\controller\Cate.php 修改为: public function del(){ // 删除的方法 $id = input('id'); // 把input('id')赋值给$id if($id != 1) { // 如果$id不等于1 if (db('cate')->delete(input('id'))) { $this->success('栏目名称删除成功!', 'lst'); } else { $this->error('栏目名称删除失败!'); } }else{ $this->error('初始化栏目名称不能删除!'); } } } *============在视图里,删除栏目列表内容============↑
*============在视图里,修改栏目和栏目列表内容============↓ D:\phpStudy\WWW\niwo\application\admin\view\cate\add.html 全部复制,粘贴,到 D:\phpStudy\WWW\niwo\application\admin\view\cate\edit.html http://127.0.0.1/niwo/public/index.php/admin/cate/edit/id/1.html 编辑界面就出来了! D:\phpStudy\WWW\niwo\application\admin\view\cate\edit.html 原内容 <ul class="breadcrumb"> <li> <a href="#">系统</a> </li> <li> <a href="{:url('admin/lst')}">栏目管理</a> </li> <li class="active">添加栏目</li> </ul> <div class="widget-header bordered-bottom bordered-blue"> <span class="widget-caption">新增栏目</span> </div> 修改为: <ul class="breadcrumb"> <li> <a href="#">系统</a> </li> <li> <a href="{:url('cate/lst')}">栏目管理</a> </li> <li class="active">修改栏目</li> </ul> div class="widget-header bordered-bottom bordered-blue"> <span class="widget-caption">修改栏目</span> </div> 原内容 <div class="form-group"> <label for="username" class="col-sm-2 control-label no-padding-right">栏目名</label> <div class="col-sm-6"> <input class="form-control" id="catename" placeholder="" name="catename" | type="text"> </div> <p class="help-block col-sm-4 red">* 必填</p> </div> 修改为:<div class="form-group"> <label for="username" class="col-sm-2 control-label no-padding-right">栏目名</label> <input type="hidden" name="id"value="{$cates.id}"> <div class="col-sm-6"> <input class="form-control" id="catename" placeholder="" name="catename" value="{$cates.catename}" type="text"> </div> <p class="help-block col-sm-4 red">* 必填</p> </div> D:\phpStudy\WWW\niwo\application\admin\controller\Cate.php 原内容 public function edit(){ $id = input('id'); $cates = db('cate')->find($id); if(request()->isPost()){ $data = [ 'id' =>input('id'), 'username' =>input('username'), ]; if(input('password')){ // 如果修改管理员密码 $data['password'] = md5(input('password')); // 在$data数组中修改,然后加密 }else{ $data['password'] = $cates['password']; // 否则密码留空,用原有密码 } $validate = \think\Loader::validate('cate'); if(!$validate->scene('edit')->check($data)){ // 在编辑场景验证 $this->error($validate->getError()); die; } if(db('cate')->update($data)){ // $this->success('修改管理员成功!','lst'); }else{ $this->error('修改管理员失败!'); } return; } 修改为: public function edit(){ $id = input('id'); $cates = db('cate')->find($id); if(request()->isPost()){ $data = [ 'id' =>input('id'), 'catename' =>input('catename'), ]; $validate = \think\Loader::validate('cate'); if(!$validate->scene('edit')->check($data)){ $this->error($validate->getError()); die; } if(db('cate')->update($data)){ // $this->success('栏目名称修改成功!','lst'); }else{ $this->error('栏目名称修改失败!'); } return; *============在视图里,修改栏目和栏目列表内容============↑
//***************验证管理员添加的唯一性**********↓ D:\phpStudy\WWW\niwo\application\admin\validate\Admin.php 原内容 // 验证规则就写在这个数组里面 protected $rule = [ 'username' => 'require|max:25', 'password' => 'require', ]; // 错误提示 protected $message = [ 'username.require' => '管理员名称必须填写', 'username.max' => '管理员名称长度不能大于25位', 'password.require' => '管理员密码必须填写', ]; // 验证 scene 场景 protected $scene = [ 'add' => ['username'=>'require','password'], // 在添加场景限定[]里的验证 'edit' => ['username'=>'require'], ]; 修改为: // 验证规则就写在这个数组里面 protected $rule = [ 'username' => 'require|max:25|unique', 'password' => 'require', ]; // 错误提示 protected $message = [ 'username.require' => '管理员名称必须填写', 'username.max' => '管理员名称长度不能大于25位', 'password.unique' => '管理员名称不能重复', 'password.require' => '管理员密码必须填写', ]; // 验证 scene 场景 protected $scene = [ 'add' => ['username'=>'require|unique:admin','password'], // 在添加场景限定[]里的验证 'edit' => ['username'=>'require|unique:admin'], ]; //***************验证管理员添加的唯一性**********↑
文章来源: ThinkPhp学习笔记——栏目功能完成及唯一性验证补充
人吐槽 | 人点赞 |
发表评论