class BaseAdmin erweitert Controller
{
öffentliche Funktion __construct(){
// Es gibt die magische Methode __construct in Controller, die wir direkt erben und aufrufen
parent::__construct();
// 1, öffentlich Überprüfen Sie zunächst in der Methode, ob Sie angemeldet sind. Wenn Sie nicht angemeldet sind, gehen Sie zur Anmeldeseite.
// Sie müssen eine Anmeldeseite und -methode erstellen
$this->_admin = session('admin');
// Nicht angemeldete Benutzer dürfen nicht darauf zugreifen
if(!$this-> _admin) {
header('Location: /admins/Account/login');
exit;
}
$this->assign('admin',$this->_admin);
/ / Urteil Hat der Benutzer die Berechtigung? $this->db = new Sysdb;
$group = $this->db->table('admin_groups')->where(array('gid'=> ;$ this->_admin['gid']))->item();
if(!$group){
$this->request_error('Leider haben Sie keine Berechtigung') ;
}
$rights = json_decode($group['rights']);
// Aktuelles Zugriffsmenü
// 99, request()->controller(); Holen Sie sich die aktuelle Datei
/ / 99, request() ->action(); Holen Sie sich die aktuelle Methode
$controller = request()->controller();
$action = request()->action();
/ / 99, Abfrage der Menütabelle (admin_menus), Suchen des Dateinamens und des Methodennamens, dasselbe Menü. Hinweis: Wiederholen Sie nicht den Methodennamen und den Dateinamen des Menüs
$res = $this->db->table('admin_menus')->where(array('controller'=>$controller, 'method' =>$action))->item();
if(!$res){
$this->request_error('Leider existiert die von Ihnen besuchte Funktion nicht.');
}
if ($res['status']==1){
$this->request_error('Leider ist diese Funktion deaktiviert');
}
if(!in_array($res[' mid'] ,$rights)){
$this->request_error('Leider haben Sie keine Berechtigung');
}
}
自问自答