diff --git a/laravel/documentation/routing.md b/laravel/documentation/routing.md index 18c90671..d10be6b1 100644 --- a/laravel/documentation/routing.md +++ b/laravel/documentation/routing.md @@ -152,6 +152,15 @@ Sometimes you may want to attach a filter to all requests that begin with a give Route::filter('pattern: admin/*', 'auth'); +Optionally you can register filters directly when attaching filters to a given URI by supplying an array with the name of the filter and a callback. + +#### Defining a filter and URI pattern based filter in one: + + Route::filter('pattern: admin/*', array('name' => 'auth', function() + { + // + })); + ## Global Filters diff --git a/laravel/routing/route.php b/laravel/routing/route.php index 73b79521..b63bdc32 100644 --- a/laravel/routing/route.php +++ b/laravel/routing/route.php @@ -213,6 +213,15 @@ class Route { { if (Str::is($pattern, $this->uri)) { + // If the filter provided is an array then we need to register + // the filter before we can assign it to the route. + if (is_array($filter)) + { + list($filter, $callback) = array_values($filter); + + Filter::register($filter, $callback); + } + $filters[] = $filter; } }