laravel 5.1 depreca Route::filter()
e altre funzioni correlate, claiming in the docs that:
filtri del percorso sono stati deprecati a preferenza di middleware.
Ma se il vostro filtro di route accede parametri del percorso, come si può sostituire questo con middleware, dal momento che il $request->route()
è null
nel middleware?
Route::filter('foo', function($route, $request) {
if ($route->parameter('bar') > 1000) {
return Redirect::route('large-bars');
}
});
Il più vicino che posso vedere è qualcosa di simile a
class FooMiddleware {
public function handle($request, Closure $next)
{
// Note that $request->route() is null here, as the request
// hasn't been handled by Laravel yet.
if ($request->segment(4) > 1000) { // ewww...
return Redirect::route('large-bars');
}
return $next($request);
}
}
ma questo è ovviamente molto più fragile di quanto si riferisce al parametro in base al nome. Cosa mi manca qui? Grazie!
Voto su vorrei sapere la risposta –