3分钟短文 | Laravel 中间件传递数据到控制器
引言 Laravel分层设计中,一般在路由阶段对请求进行初步的过滤筛选, 对不合格的或者非法的请求,直接可以中断请求,返回错误结果。 一般我们也是这么做的,但是你想过没有,中间件如何传递数据到下游?本文就来说一说。 学习时间 比如有一个需求,根据用户身份,判断其是否可以访问某个页面。先注册一个路由地址,在 route.php 文件内添加如下参数: Route::get('pages/{id}', [ 'as' => 'pages', 'middleware' => 'pageUser', 'uses' => 'PagesController@view' ]); 接着是实现 PageUserMiddleware.php 中间件逻辑,代码如下: public function handle($request, Closure $next) { $pageId = $request->route('id'); $page = Page::with('users')->where('id', $pageId)->first(); if(!$page->users()->wherePivot('user_id', Auth::user()->id)->exists()) { return redirect()->route('redirectRoute'); } return $next(