Php Laravel路由模式-具有多个项的url

Php Laravel路由模式-具有多个项的url,php,laravel-routing,Php,Laravel Routing,我的URL是这样的:平板电脑/平板电脑/iPad 这里是电子产品、电脑和平板电脑的列表,平板电脑等都是大类和小类。可能有N个类别 是否可以编写一个与N个类别匹配的模式,而不是像下面的代码那样将它们单独称为{cat1?}/{cat2?}/{cat3?} Route::group(['prefix' => 'category'], function () { Route::get('/','CategoryController@show'); Route::ge

我的URL是这样的:平板电脑/平板电脑/iPad

这里是电子产品、电脑和平板电脑的列表,平板电脑等都是大类和小类。可能有N个类别

是否可以编写一个与N个类别匹配的模式,而不是像下面的代码那样将它们单独称为{cat1?}/{cat2?}/{cat3?}

Route::group(['prefix' => 'category'], function () {
        Route::get('/','CategoryController@show');
        Route::get('/{cat1?}/{cat2?}/{cat3?}', 'CategoryController@show');        
    }); 
感谢您的帮助

试试这个:

Route::get('/{cat1}/{cat2}/{cat3}', 'CategoryController@show')->where(['cat1' => '^(Electronics|Computers)', 'cat2' => '^(iPad)']);
如果有帮助,请参阅。

尝试以下操作:

Route::get('/{cat1}/{cat2}/{cat3}', 'CategoryController@show')->where(['cat1' => '^(Electronics|Computers)', 'cat2' => '^(iPad)']);

请参阅,如果有帮助。

您可以使用一个参数作为regex模式创建路由。类似于
category/{params}
,其中
{params}
类似于
(/.+)+
。然后在控制器操作中,您可以通过解析此参数来获取类别列表<代码>$categoriesArray=split('/',trim($params,'/')

您可以使用一个参数作为regex模式创建路由。类似于
category/{params}
,其中
{params}
类似于
(/.+)+
。然后在控制器操作中,您可以通过解析此参数来获取类别列表<代码>$categoriesArray=split('/',trim($params,'/')

谢谢chba给我的好提示……这很好用。使用下面的代码管理它-Route::pattern('param','[{a-zA-Z0-9/}]+');路由::get('post/{param}','CategoryController@show');谢谢chba给我的好提示…这很好用。使用下面的代码管理它-Route::pattern('param','[{a-zA-Z0-9/}]+');路由::get('post/{param}','CategoryController@show');