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 Roles extends Base{ public fun
<?php
/**
* Created by PhpStorm.
* User: 12757
* Date: 2019/4/16
* Time: 18:32
*/
namespace app\admins\controller;
use think\Controller;
use Util\SysDb;
class Roles extends Base
{
public function index()
{
$data['lists'] = $this->db->table('admin_groups')->lists();
return $this->fetch('',$data);
}
//添加框
public function add()
{
$gid = (int)input('get.gid');
$group = $this->db->table('admin_groups')->where(array('gid'=>$gid))->item();
if($group)
{
$group['rights'] = json_decode($group['rights']);
}
//找到所有正常的菜单,索引是mid
$menu_list = $this->db->table('admin_menus')->where(array('status'=>0))->cates('mid');
$menu = $this->gettreeitems($menu_list);//结果数组,这个方法用于返回需要的菜单的层级结构
$results = [];
foreach($menu as $value){
$value['children'] = isset($value['children'])?$this->formatMenus($value['children']):false;
$results[] = $value;
}
// dump($results);
// return;
$data['menus'] = $results;
$data['group'] = $group;
return $this->fetch('',$data);
}
private function gettreeitems($items)
{
$tree = [];
foreach($items as $item)
{
if(isset($items[$item['pid']])){
$items[$item['pid']]['children'][] = &$items[$item['mid']];
}else{
$tree[] = &$items[$item['mid']];
}
}
return $tree;
}
private function formatMenus($items,&$res = array()){
foreach($items as $item){
if(!isset($item['children'])){
$res[] = $item;
}else{//有子菜单
$tem = $item['children'];
unset($item['children']);
$res[] = $item;
//有子节点的元素处理
$this->formatMenus($tem,$res);
}
}
return $res;
}
//保存权限管理信息
public function save(){
$gid = (int)input('post.gid');
$data['title'] = trim(input('post.title'));
$menus = input('post.menu/a');
if(!$data['title']){
exit(json_encode(array('code'=>1,'msg'=>'角色名称不能为空')));
}
//如果有menus,就把data里面的rights赋值
$menus && $data['rights'] = json_encode(array_keys($menus));//把menus的key,就是菜单的id取出来
//如果gid存在,则一定是编辑操作,而不是加入操作
if($gid){
$this->db->table('admin_groups')->where(array('gid'=>$gid))->update($data);
}else{
$this->db->table('admin_groups')->insert($data);
}
exit(json_encode(array('code'=>0,'msg'=>'保存成功')));
}
//删除角色
public function delete()
{
$gid = (int)input('post.gid');
$this->db->table('admin_groups')->where(array('gid'=>$gid))->delete();
exit(json_encode(array('code'=>0,'msg'=>'删除成功')));
}
}
Correcting teacher:查无此人Correction time:2019-04-19 09:39:48
Teacher's summary:看来你完成了不少的作业呀。权限的控制,之后可以自己添加:按钮没有权限,就看不到按钮。继续加油。