Как применить несколько фильтров в группе маршрутов Laravel 4?

Можно ли добавить несколько фильтров на групповом маршруте в Laravel 4?

У меня есть два метода аутентификации для приложения, ориентированного на API. Один со стандартной аутентификацией (фильтр «auth» для веб-сайта), один с токеном (фильтр «auth.token» для мобильного приложения).

<?php Route::group(array('prefix' => 'api/'), function() { #Custom routes here }); ?> 

В идеале я бы хотел, чтобы, если один из двух фильтров прошел , группа доступна.

Ты можешь:

 Route::group(['before' => 'auth|csrf'], function() { // }); 

Однако, если вы хотите сделать его доступным, если пройдет один из фильтров, вам нужно будет написать немного больше (в filters.php):

 function csrfFilter() { if (Session::token() != Input::get('_token')) { throw new Illuminate\Session\TokenMismatchException; } } function authFilter() { if (Auth::guest()) return Redirect::guest('login'); } Route::filter('csrf-or-auth', function () { $value = call_user_func('csrfFilter'); if ($value) return $value; else return call_user_func('authFilter'); }); 

В routes.php

 Route::group(['before' => 'csrf-or-auth'], function() { // }); 

Помните, что при передаче фильтра вам ничего не нужно возвращать. Я надеюсь, это поможет вам!

Вы можете сделать это с помощью laravel

 Route::group(array('prefix' => 'api/', 'before' => 'filter1|filter2'), function() { Route::get('api1', function() { // Has Filter1 and filter2 }); Route::get('api2', function() { // Has filter1 and filter2 }); }); 

проверьте документацию для получения более подробной информации