Как добавить два новых параметра ко всем маршрутам Laravel - PullRequest
0 голосов
/ 31 августа 2018

У меня проблема с моими заданными маршрутами в Ларавеле. До сих пор все наши структуры URL содержали от одного до четырех параметров. Для вымышленного примера

example.com/product
example.com/product/make
example.com/product/make/model
example.com/product/make/model/colour

С двумя, тремя или четырьмя параметрами у меня были созданы определенные маршруты. Для URL с одним параметром я использовал универсальный маршрут.

Route::get('/', 'HomePageController@index');
Route::group(['middleware' => 'my_middleware'], function()
{
    Route::get('{product}/{make}', 'MakeController@index');
    Route::get('{product}/{make}/{model}', 'ModelController@index');
    Route::get('{product}/{make}/{model}/{colour}', 'ColourController@index');

    Route::get('{product}', 'DefaultController@index');
});

Теперь у меня есть требование добавить два новых параметра к каждому URL - один для страны сайта и один для области сайта. Так, например, URL может быть:

example.com/uk/suffolk/product/make

Я добился этого, добавив 'prefix' => '{country}/{area}' в мою группу маршрутов. Но это оставляет меня с проблемой. Что произойдет, если кто-то использует мою старую структуру URL - т.е. без двух новых параметров. Как я могу заставить мои маршруты различать следующие URL-адреса - оба имеют три параметра

example.com/product/make/model
// AND
example.com/uk/essex/product

Мы обслуживаем около 30 стран, каждая из которых имеет до 5 зон. Нужно ли мне провести некоторую проверку в своем Middleware или есть лучшее решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...