学习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';
}]);
Route::get('admin/profile', ['middleware'=>'old', 'uses'=>'IndexController@index']);