Я знаю, что могу сделать это
Route::get('foo/bar', array('before' => 'filter', 'uses' => 'Controller@bar'));
для применения маршрутов некоторый фильтр. Мне также известен метод Route :: group (). В любом случае, если я хочу определить контроллер таким образом
Route::controller('foo/{id}/bar', 'Controller');
Я не могу передать массив как второй аргумент.
Вопрос: как применить фильтры к следующему маршруту?
Route::controller('foo/{id}/bar', 'Controller');
=== EDIT
Я хочу закодировать это в моем route.php, но не внутри конструктора контроллера.
В constructor
вашего контроллера вы можете использовать
public function __construct() { $this->beforeFilter('auth'); }
Кроме того, вы можете использовать
Route::group(array('before' => 'auth'), function() { Route::controller(...); });
Blockquote Метод контроллера принимает два аргумента. Первый – это базовый URI, который управляет контроллер, а второй – имя класса контроллера. Затем просто добавьте методы к вашему контроллеру с префиксом HTTP-глагола, на который они отвечают.
Контроллер Route :: отвечает за создание группы маршрутов с использованием соглашений об именах REST. Предназначен для создания сервисов RESTFull.
Фильтры Blockquote могут быть указаны на маршрутах контроллера, похожих на «обычные» маршруты:
Поскольку эта функция допускает только два параметра, вы можете применять фильтры контроллера в конструкторе. Например:
class RoutedController extends Controller { public function __construct() { //Apply Auth filter to all controller methods $this->filter('before', 'auth'); } }
Вы можете прочитать о фильтрах контроллера в документах Laravel: http://laravel.com/docs/controllers#controller-filters