Browse Source

Merge pull request #854 from jasonlewis/feature/pattern-filters

Allow filter patterns to supply a name and callback as an easier alternative.
Taylor Otwell 12 years ago
parent
commit
990f10f6de
2 changed files with 18 additions and 0 deletions
  1. 9 0
      laravel/documentation/routing.md
  2. 9 0
      laravel/routing/route.php

+ 9 - 0
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');
 	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()
+    {
+        // 
+    }));
+
 <a name="global-filters"></a>
 <a name="global-filters"></a>
 ## Global Filters
 ## Global Filters
 
 

+ 9 - 0
laravel/routing/route.php

@@ -213,6 +213,15 @@ class Route {
 		{
 		{
 			if (Str::is($pattern, $this->uri))
 			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;
 				$filters[] = $filter;
 			}
 			}
 		}
 		}