thinkphp5.1中间件处理权限判断问题时,如何实现页面重定向并显示提示信息

问题描述

假定需要用户登陆后才能发布新信息,通过在控制器层注册中间件来对用户是否登陆来进行判断且重定向页面。

问题出现的环境背景及自己尝试过哪些方法

我打算通过修改请求对象内的url实现页面重定义,但这样无法传递提示信息,也无法实现页面重定向。

相关代码

public function handle($request, \Closure $next)
    {
        dump(session('userInfo'));
        if (session('?userInfo')) {
            return $next($request);
        } else {
            $request->url = '/tp5/public/?s=/user/signIn';
            return $next($request);
        }
    }
阅读 3.7k
1 个回答

问题代码中的赋值方式只会对param['url']赋值。直接使用重定向助手函数即可。

public function handle($request, \Closure $next)
    {
        if (session('?userInfo')) {
            return $next($request);
        } else {
            return redirect('/tp5/public/?s=/user/signIn',['message'=>'请先登录']);
        }
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题