在Laravel 5.2中,具有不同控制器的Laravel 5.2的动态路线



我有一个 ProfileControllerCategoryController

我想向用户的个人资料显示以下路线:

my.domain.com/firstname.lastname
my.domain.com/firstname2.lastname2
...

就像Facebook正在这样做一样。因此,我想在我的ProfileController中处理此操作,因此我最终得到了这样的路线:

Route::get('/{userSlug}', array('uses' => 'ProfileController@getProfile'));

这没问题,而且效果很好。但是现在我想显示这样的类别:

my.domain.com/category-1
my.domain.com/category-2
...

问题是,我要做这样的路线: Route::get('/{categorySlug}', array('uses' => 'CategoryController@getCategory'));,但是该路线已经由配置文件使用。

我知道我只能使用一个控制器,然后检查slug是用户插件还是categorySlug,但是我真的想将配置文件逻辑与类别逻辑分开为自己的控制器。

这里最好的做法是什么?

如果您的用户路由将以/firstname.lastname的形式,则可以尝试正则表达式约束:

Route::get('/{userSlug}', array('uses' => 'ProfileController@getProfile'))
        ->where('name', '[a-z]+.[a-z]+');

然后,跟随您的全部类别路由。但是,您会更好地将类别URL前缀(例如/category/category-1)。

相关内容

  • 没有找到相关文章

最新更新