Маршрутизация Laravel с ресурсом

#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 предлагает вам немного прочитать об этом, очень полезно