定义了一个构造函数,代码如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php namespace app\controller; use app\BaseController; use think\facade\Log; use think\facade\Session; class Admin extends BaseController {     public function __construct()     {         Log::debug('Checking admin session');         // 判断是否登录         if(!session('?admin')){             Log::debug('session not found');             // 未登录,跳转到登录页             return redirect('/admin/login');             die;         }     }     public function index()     {         return view();     }     public function login(  )     {         return view();     } } | 
但是发现return redirect(‘/admin/login’)不生效,特意加了die也一样无法执行。
通过了解,发现这里需要手动调用执行,也就是执行当前响应对象的send方法输出。
修改后的代码如下所示:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php namespace app\controller; use app\BaseController; use think\facade\Log; use think\facade\Session; class Admin extends BaseController {     public function __construct()     {         Log::debug('Checking admin session');         // 判断是否登录         if(!session('?admin')){             Log::debug('session not found');             // 未登录,跳转到登录页             return redirect('/admin/login')->send();             die;         }     }     public function index()     {         return view();     }     public function login(  )     {         return view();     } } | 
再次访问,重定向即可生效。
原创文章,作者:蓝洛水深,如若转载,请注明出处:https://blog.lanluo.cn/12829
 
                
 微信扫一扫
                                                            微信扫一扫                                                     支付宝扫一扫
                                                            支付宝扫一扫                                                     
             
             
            