php - laravel在中间件内生成的变量如何传到控制器

查看:105
本文介绍了php - laravel在中间件内生成的变量如何传到控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在中间件内获取到一个变量,如何返回到控制器中并使用这个变量!

解决方案

做了个demo:

// web.php
Route::get('/check', 'CheckController@check')->middleware(App\Http\Middleware\CheckRequest::class);

// Middleware/CheckRequest.php
class CheckRequest
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $check_request = 'CheckRequest';
        $request->attributes->add(compact('check_request'));
        return $next($request);
    }
}

// CheckController.php
//use Request;
use Illuminate\Http\Request;
class CheckController extends Controller
{
    public function check(Request $request)
    {
        return $request->get('check_request'); // 输出CheckRequest
    }
    
    public function check2()
    {
        return Request::get('check_request'); // 输出CheckRequest
    }
}

这篇关于php - laravel在中间件内生成的变量如何传到控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆