laravel5使用中间件时ErrorException in Route.php line 194

来源:互联网 发布:makerbot软件下载 编辑:程序博客网 时间:2024/05/22 06:39

学习laravel5的中间件的时候,根据手册写了个自定义的中间件,结果在未通过中间件时成功拦截了,但是通过了中间件的时候,反而报错:ErrorException in Route.php line 194


自定义的中间件如下:


<?php namespace App\Http\Middleware;use Closure;class OldMiddleware {/** * Handle an incoming request. * * @param  \Illuminate\Http\Request  $request * @param  \Closure  $next * @return mixed */public function handle($request, Closure $next){if($request->input('age') < 200){ //age小于200则重定向return redirect('hello');}return $next($request);}}


在Kernel.php中定义使用该中间件:


protected $routeMiddleware = ['auth' => 'App\Http\Middleware\Authenticate','auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth','guest' => 'App\Http\Middleware\RedirectIfAuthenticated','old' => 'App\Http\Middleware\OldMiddleware', //自定义的中间件];


路由是这样的:


Route::get('admin/profile', ['middleware'=>'old', function(){return 'yes';}]);


报错如标题所示。这个报错是因为laravel5(5.0之后的没测试)的中间件使用时,需要注意路由群组第二个参数,不能为function,应该是这样的:


Route::get('admin/profile', ['middleware'=>'old', 'uses'=>'IndexController@index']);


0 0
原创粉丝点击