定义了一个构造函数,代码如下:
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