人若有眼大于天,当见山高月更阔

前端到后台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

posted @ 2017-07-20 23:34  颓废的后生  阅读(1334)  评论(0编辑  收藏  举报