无限极菜单的实现

Original 2019-04-19 08:13:19 277
abstract:<?php/** * Created by PhpStorm. * User: 12757 * Date: 2019/4/16 * Time: 18:32 */namespace app\admins\controller;use think\Controller;use Util\SysDb;class Menu extends Base{    public func

<?php
/**
* Created by PhpStorm.
* User: 12757
* Date: 2019/4/16
* Time: 18:32
*/

namespace app\admins\controller;
use think\Controller;
use Util\SysDb;

class Menu extends Base
{
   public function index()
   {
       $pid = (int)input('get.pid');
       $where['pid'] = $pid;
       $data['lists'] = $this->db->table('admin_menus')->where($where)->order('ord asc')->lists();

       //为了实现子菜单的功能,将pid带到后面去
       $data['pid'] = $pid;

       //处理子菜单
       if($pid>0){
           $parent = $this->db->table('admin_menus')->where(array('mid'=>$pid))->item();//拿到上级菜单
           $data['backid'] = $parent['pid'];
       }

       return $this->fetch('',$data);
   }

   public function add()
   {
       $pid = (int)input('get.pid');
       $mid = (int)input('get.mid');
       //如果有mid,加载mid就可以了
       //如果pid有值,加载当前菜单
       $data['parent_menu'] = $this->db->table('admin_menus')->where(array('mid'=>$pid))->item();
       $data['menu'] = $this->db->table('admin_menus')->where(array('mid'=>$mid))->item();
       return $this->fetch('',$data);
   }
   //保存菜单
   public function save()
   {
       $mid = (int)input('post.mid');
       //接收上级菜单mid
       $data['pid'] = (int)input('post.pid');
       $data['title'] = trim(input('post.title'));
       $data['controller'] = trim(input('post.controller'));
       $data['method'] = trim(input('post.method'));
       $data['ord'] = (int)input('post.ord');
       $data['ishidden'] = (int)input('post.ishidden');
       $data['status'] = (int)input('post.status');

       if($data['title'] == ''){
           exit(json_encode(array('code'=>1,'msg'=>'菜单名称不能为空')));
       }
       if($data['pid']>0 && $data['controller'] == ''){
           exit(json_encode(array('code'=>1,'msg'=>'控制器名称不能为空')));
       }
       if($data['pid']>0 && $data['method'] == ''){
           exit(json_encode(array('code'=>1,'msg'=>'方法名称不能为空')));
       }

       //如果有mid,应该是更新菜单;否则的话是插入菜单
       if($mid){
           $res = $this->db->table('admin_menus')->where(array('mid'=>$mid))->update($data);
       }else{
           $res = $this->db->table('admin_menus')->insert($data);
       }

       if(!$res){
           exit(json_encode(array('code'=>1,'msg'=>'保存失败')));
       }
       exit(json_encode(array('code'=>0,'msg'=>'保存成功')));
   }

   //删除菜单
   public function delete(){
       $mid = (int)input('post.mid');
       $res = $this->db->table('admin_menus')->where(array('mid'=>$mid))->delete();
       if(!$res){
           exit(json_encode(array('code'=>1,'msg'=>'删除失败')));
       }
       exit(json_encode(array('code'=>0,'msg'=>'删除成功')));
   }
}

Correcting teacher:查无此人Correction time:2019-04-19 09:33:32
Teacher's summary:完成的不错,后台cms管理学会后,你就可以去做项目了,继续加油。

Release Notes

Popular Entries