这是一个后台的基类,控制器继承这个就可以了
namespace app\admin\controller;
use think\Controller;
class Init extends Controller
{
public function _initialize()
{
$admin = session('admin');
if(empty($admin)){
$this->error('您还未登录,请登录后再来',url('login/index'),0);
}
$nodes = db('role')->where(['id'=>$admin['role_id']])->value('nodes');
$where = '1=1';
if($admin['role_id'] !=1){
$where .= ' and id in('.$nodes.')';
}
$node = db('node')->where($where)->select()->toArray();
foreach ($node as $k=>$v){
$urls[$k] = strtolower($v['url']);
$node[$k]['url'] = strtolower($v['controller'].'/'.$v['action']);
$node[$k]['controller'] = strtolower($v['controller']);
$node[$k]['action'] = strtolower($v['action']);
}
$controller = strtolower(request()->controller());
$action = strtolower(request()->action());
$url = 'admin/'.$controller.'/'.$action;
$urls[] = 'admin/index/index';
$this->assign('node',$node);
$this->assign('controller',$controller);
$this->assign('action',$action);
if(!in_array($url, $urls) && $admin['role_id'] != 1){
$this->error('您无权操作此内容');
}
}
}
sql.zip
( 3.85 KB 下载:34 次 )
最佳答案