#php #laravel
#php #laravel
Вопрос:
В настоящее время мой файл маршрутов выглядит следующим образом:
Route::get('/corporation/{paginate}','CorporationCorporationController@index');
Route::group(['middleware' => ['active']], function () {
/* Corporation */
Route::resource('corporation','CorporationCorporationController');
}
Поэтому я ожидаю, что когда я перейду к /corporation
I’would не использовать маршрут ресурсов. Но это делает -_-
Как я могу убедиться, что он использует первый маршрут?
Большое спасибо!
—РЕДАКТИРОВАТЬ—
Route::post('/user', 'UserUserController@store');
Route::group(['middleware' => ['active']], function () {
/* User */
Route::resource('user', 'UserUserController');
}
Ответ №1:
Он будет использовать маршрут ресурсов, потому /corporation
что не соответствует стандартам /corporation/{paginate}
.
Поскольку я предполагаю, что вы хотите /corporation/{paginate}
быть необязательным и использовать маршруты ресурсов для остальных URL-адресов, вы должны сделать разбиение на страницы необязательным, добавив ?
знак.
Route::get('/corporation/{paginate?}', 'CorporationCorporationController@index');
Дополнительно вам нужно будет исключить GET по умолчанию /corporation
из ресурсов.
Route::resource('corporation', 'CorporationCorporationController', ['except' => [
'index'
]]);
Комментарии:
1. Спасибо Карлосу. Это работает, но теперь у меня есть другой маршрут? Пожалуйста, посмотрите мою правку.
2. что не так с этими маршрутами? Нет необходимости объявлять первый маршрут, поскольку этот маршрут создается маршрутом ресурсов
3. Да, но я должен получить к нему доступ без
active
промежуточного программного обеспечения.4. просто добавьте исключение в маршрут ресурса
['except' => ['store']]
5. Ресурс Laravel 5.2 предлагает вам немного прочитать об этом, очень полезно