今晚继续我的这个项目的开发,今晚也是写的不多,主要写了一个菜单管理功能的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