検索

ホームページ  >  に質問  >  本文

thinkphp6 のバックエンド システムがログイン リダイレクトを次々と実行しない場合はどうすればよいですか?

class BaseAdmin extends Controller

{

public function __construct(){

// Controller には __construct マジック メソッドがあり、それを直接継承して呼び出します

parent::__construct();

// 1. まず public メソッドを使用して、ログインしているかどうかを確認します。ログインしていない場合は、ログインページに移動します。

// ログイン ページとメソッドを作成する必要があります

$this->_admin = session('admin');

// ログインしていないユーザーは許可されませんアクセスするには

if(!$this->_admin){

header('Location: /admins/Account/login');

exit;

}

$this->assign('admin',$this->_admin);

// ユーザーに権限があるかどうかを判断します

$ this-> ;db = 新しい Sysdb;

$group = $this->db->table('admin_groups')->where(array('gid'=>$this-> ;_admin[ 'gid']))->item();

if(!$group){

$this->request_error('申し訳ありませんが、持っていません権限');

}

$rights = json_decode($group['rights']);

// 現在のアクセス メニュー

// 99, request()->controller(); 現在のファイルを取得します

// 99, request()->action(); 現在のメソッドを取得します

$controller = request ()->controller() ;

$action = request()->action();

// 99、メニュー テーブル (admin_menus) をクエリし、次のコマンドでメニューを見つけます。ファイル名とメソッド名が同じです。注: メニューのメソッド名とファイル名を繰り返さないでください

$res = $this->db->table('admin_menus')->where(array('controller'=>) ;$controller ,'method'=>$action))->item();

if(!$res){

$this->request_error('申し訳ありませんが、あなたが訪問した関数は存在しません');

}

if($res['status']==1){

$this->request_error('申し訳ありませんが、関数は無効になっています');

}

if(!in_array($res['mid'],$rights)){

$this-> request_error ('申し訳ありませんが、権限がありません');

}

}

与时赛跑与时赛跑824日前1154

全員に返信(1)返信します

  • 手机用户6999042

    手机用户69990422022-08-29 09:24:33

    質疑応答

    返事
    0
  • キャンセル返事