如何为所有Laravel路线添加两个新参数

时间:2018-08-31 12:40:59

标签: php laravel routes

我在Laravel中定义的路线有问题。到目前为止,我们所有的URL结构都包含一到四个参数。举一个虚拟的例子

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

使用两个,三个或四个参数,我创建了特定的路由。对于只有一个参数的网址,我使用了全部路由。

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添加两个新参数-一个用于站点国家,一个用于站点区域。因此,例如,网址可能是:

example.com/uk/suffolk/product/make

我已通过在我的路线组中添加'prefix' => '{country}/{area}'来实现这一目标。但这给我带来了问题。如果有人使用我的旧网址结构-即没有两个新参数,会发生什么情况。如何获取路由来区分以下网址-两者都有三个参数

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

我们为大约30个国家/地区提供服务,每个国家/地区最多可包含5个区域。我需要在中间件中进行一些验证还是有更好的解决方案?

0 个答案:

没有答案