zoukankan      html  css  js  c++  java
  • 前端到后台ThinkPHP开发整站(4)

      今晚继续我的这个项目的开发,今晚也是写的不多,主要写了一个菜单管理功能的CURD方法,前端界面还没有进行编写。

      菜单管理Model层的代码:

    <?php
    namespace Common\Model;
    use Think\Model;
    
    class MenuModel extends Model{
    	private $_db='';
    	
    	public function __construct(){
    		$this->_db=M("menu");
    	}
    	
    	/**
    	 * 插入菜单数据
    	 */
    	public function insert($data=array()){
    		if(!data || !is_array($data)){
    			return 0;
    		}
    		
    		return $this->_db->add($data);
    	}
    	
    	/**
    	 * 获取菜单数据
    	 */
    	public function getMenus($data,$pageIndex,$pageSize=10){
    		$data['status']=array('neq',-1);
    		$offset=($pageIndex-1)*$pageSize;
    		$list=$this->_db->where($data)->order('listorder desc,menu_id desc')->limit($offset,$pageSize);
    		return $list;
    	}
    	
    	/**
    	 * 获取菜单总数
    	 */
    	public function getMenusCount($data=array()){
    		$data['status']=array('neq',-1);
    		return $this->_db->where($data)->count();
    	}
    	
    	/**
    	 * 根据ID获取菜单ID
    	 */
    	public function find($id){
    		if(!$id || !is_numeric($id)){
    			return array();
    		}
    		return $this->_db->where("menu_id={}$id")->find();
    	}
    	
    	/**
    	 * 根据ID更新菜单
    	 */
    	public function updateMenuById($id,$data){
    		if(!$id || !is_numeric($id)){
    			throw_exception("ID不合法");
    		}
    		
    		if(!$data || !is_array($data)){
    			throw_exception('更新的数据不合法');
    		}
    		
    		return $this->_db->where("menu_id={$id}")->save($data);
    	}
    	
    	/**
    	 * 更新排队序号
    	 */
    	public function updateMenuListOrderById($id,$listorder){
    		if(!$id || !is_numeric($id)){
    			throw_exception('ID不合法');
    		}
    		$data=array(
    			'listorder'=>intval($listorder);
    		);
    		
    		return $this->_db->where("menu_id={$id}")->save($data);
    	}
    	
    	/**
    	 * 获取后台菜单
    	 */
    	public function getAdminMenus(){
    		$data=array(
    			'status'=>array('neq',-1),
    			'type'=>1
    		);
    		
    		return $this->_db->where($data)->order('listorder desc,menu_id desc')->select();
    	}
    	
    	/**
    	 * 获取前台菜单
    	 */
    	public function getBarMenus(){
    		$data=array(
    			'status'=>1,
    			'type'=>0
    		);
    		return $this->_db->where($data)->order('listordre desc,menu_id desc')->select();
    	}
    }
    ?>
    

        菜单管理控制器类的代码:

    <?php
    namespace Admin\Controller;
    use Think\Controller;
    
    class MenuController extends  CommonController{
    	
    	public function index(){
    		$data=array();
    		if(isset($_REQUEST['type']) && in_array($_REQUEST, array(0,1))){
    			$data['type']=intval($_REQUEST['type']);
    			$this->assign('type',$data['type']);
    		}else{
    			$this->assign('type',-100);
    		}
    	}
    	
    	public function add(){
    		if($_POST){
    			if(!isset($_POST['name']) || !$_POST['name']){
    				return jsonResult(0, '菜单名不能为空');
    			}
    			if(!isset($_POST['m']) || !$_POST['m']){
    				return jsonResult(0, '模块名不能为空');
    			}
    			if(!isset($_POST['c']) || !$_POST['c']){
    				return jsonResult(0, '控制器不能为空');
    			}
    			if(!isset($_POST['f']) || !$_POST['f']){
    				return jsonResult(0, '方法名不能为空');
    			}
    			if($_POST['menu_id']){
    				return $this->save($_POST);
    			}
    			$menuId=D("Menu")->insert($_POST);
    			if($menuId){
    				return jsonResult(1, '新增成功', $menuId);
    			}
    			return jsonResult(0, '新增失败', $menuId);
    		}else{
    			$this->display();
    		}
    	}
    	
    	public function edit(){
    		$menuId=$_REQUEST['id'];
    		$menu=D("Menu")->find($menuId);
    		$this->assign('menu',$menu);
    		$this->display();		
    	}
    	
    	public function save($data){
    		$menuId=$data['menu_id'];
    		unset($data['menu_id']);
    		
    		try{
    			$id=D("Menu")->updateMenuById($menuid,$data);
    			if($id===FALSE){
    				return jsonResult(0, '保存失败');
    			}
    			return jsonResult(0,'保存成');
    		}catch(Exception $ex){
    			return jsonResult(0,$ex->getMessage());
    		}
    	}
    	
    	public function setStatus(){
    		try{
    			if($_POST){
    				$id=$_POST['id'];
    				$status=$_POST['status'];
    				$ret=D("Menu")->updateStatusById($id,$status);
    				if($ret){
    					return jsonResult(1,'操作成功');
    				}else{
    					return jsonResult(0,'操作失败');
    				}
    			}
    		}catch(Exception $ex){
    			return jsonResult(0,$ex->getMessage());
    		}
    		return jsonResult(0,'没有提交数据');
    	}
    	
    	/**
    	 * 数据排序
    	 */
    	public function listorder(){
    		$listoreder=$_POST['listorder'];
    		$data =array('jump_url'=> $_SERVER['HTTP_REFERER']);
    		$errors=array();
    		if($listoreder){
    			try{
    				foreach($listorder as $emnuId=>$v){
    					$id=D("Menu")->updateMenuListorderById($menuId,$v);
    					if($id===false){
    						$errors[]=$menuId;
    					}
    				}
    			}catch(Exception $ex){
    				return jsonResult(0, $ex->getMessage(), $data)
    			}
    			if($errors){
    				return jsonResult(0,"排序失败-".implode(',', $errors), $data);
    			}
    			return jsonResult(1, '排序成功', $data)
    		}
    		return jsonResult(0,'数据排序失败', $data);
    	}
    }
    ?>
    

      今晚就暂时写这么点,明晚开始做前端的开发,明天就周五了,如果周六不用加班,我会加大马力在这周内结束该项目的。(^_−)☆

    源码地址:https://github.com/YoZiLin/TP-CMS

  • 相关阅读:
    1.Angular的架构模型
    最受欢迎的14款主流渗透工具,流行至今
    当今破解密码涉及的思路方法总结
    Windows权限提升基础知识和命令
    同形异义字:看我如何拿到TaoBao.com的解析权
    【浅谈web安全】大企业安全:从员工下手
    PHPcms9.6.0任意文件上传漏洞直接getshell 利用教程
    【MD5解密】免费帮大家解MD5
    【社会工程学】打脸社工所谓的社工六人组社工帝
    震惊!WIN2003存在后门大全,提权成功率高
  • 原文地址:https://www.cnblogs.com/lzy138/p/7215380.html
Copyright © 2011-2022 走看看