Ответ 1
В конструкторе QuotesController
вы можете использовать:
$this->middleware('auth', ['except' => ['index','show']]);
Можно ли добавить промежуточное ПО для всех или некоторых элементов находчивого маршрута?
Например...
<?php
Route::resource('quotes', 'QuotesController');
Кроме того, если возможно, я хотел бы, чтобы все маршруты, кроме index
и show
, использовали промежуточное программное обеспечение auth
. Или это должно быть сделано в контроллере?
В конструкторе QuotesController
вы можете использовать:
$this->middleware('auth', ['except' => ['index','show']]);
Вы можете использовать Route Group в сочетании с концепцией Middleware: http://laravel.com/docs/master/routing
Route::group(['middleware' => 'auth'], function()
{
Route::resource('todo', 'TodoController', ['only' => ['index']]);
});
В laravel 5.5 с php 7 это не сработало для меня с исключением нескольких методов, пока я не написал
Route::group(['middleware' => 'auth:api'], function() {
Route::resource('categories', 'CategoryController', ['except' => 'show,index']);
});
Возможно, это поможет кому-то. В поисках лучшего решения для Laravel 5. 8+.
Вот что я сделал:
Примените промежуточное программное обеспечение к ресурсу, за исключением тех, кому вы не хотите применять промежуточное программное обеспечение. (Здесь индекс и покажи)
Route::resource('resource', 'Controller', [
'except' => [
'index',
'show'
]
])
->middleware(['auth']);
Затем создайте маршруты ресурсов, которые были, кроме первого. Так что индексируйте и покажите.
Route::resource('resource', 'Controller', [
'only' => [
'index',
'show'
]
]);