【发布时间】:2018-05-15 13:29:27
【问题描述】:
我有 2 种在路上。
像这样:
你知道这些:
Route::get('/{category_slug}/{article_slug}', 'mController@list');
Route::get('/{category_slug}/{subcategory_slug?}', 'mController@clist');
它只运行第一条路线。
我尝试在 RouteServiceProvider boot(){
中绑定它们Route::bind('category_slug', function ($category_slug, $route) {dd('category_slug') }); //works
Route::bind('article_slug', function ($article_slug, $route) { dd('article_slug') }); //works for both article_slug(ok!) and subcategory_slug(wrong!)
Route::bind('subcategory_slug', function ($subcategory_slug, $route) { dd('subcategory_slug') }); //not works
}
有没有办法在加载路线之前检查 {article_slug} 或 {subcategory_slug} 然后系统选择正确的路线?例如,如果第一个错误,则跳过它并尝试运行第二个路线。
例如中间件可以做到吗?
【问题讨论】:
-
参数只是占位符,您不能真正使用它们将路由重定向到控制器。你不能改用其他路线吗?
-
@pseudoanime 我想创建这样的 URL:
example.com/cat/subcat1_slug/subcat2_slug.../subcatN_slug/article_slug...我每小时搜索谷歌,但找不到解决方案。所以我想也许我可以通过顶级方式......
标签: php laravel laravel-routing laravel-middleware