laravel5.5 __construct函數 無法使用session() 解決方法和實例


從網上查詢資料得知,在laravel中使用__construct方法的時候,session還沒開啟,此時就需要用到中間件來解決。

    $this->middleware(function ($request, $next) {
        var_dump(\Session::get('userid'));
        exit;
    });

  

我這里用到的__construct函數,是用來判斷同一個賬號是否在另一個客戶端登錄,比如A客戶端正在登錄,此時B客戶端也要登錄,B客戶端登錄成功后,A客戶端就會退出

通過驗證當前的登錄IP是否一致來判斷。

這是一個公共類,該類繼承了Controller類,所以只要用到這個公共類,其他類只需把繼承的Controller類換成該公共類就可以了

    public function __construct(Request $request)
    {
        // 判斷是否已在客戶端登錄
        $this->middleware(function ($request, $next) {
            $ip = md5($_SERVER['REMOTE_ADDR']);//當前的IP,md5加密
            $res = DB::table('users')->where(['uid'=>\Session::get('userid')])->first();
            if ($ip != $res->IP) {
                return redirect('/adminlogin');
       exit; } return $next($request); }); }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM