laravel中的路由优先级正则表达式

时间:2017-02-11 13:46:36

标签: php laravel model-view-controller routes laravel-5.3

我做了两条路线:

单程旅游路线:

Route::get('{category}/{slug}',
      ['as' => 'single.tour',
       'uses' => 'PublicController@singleTour'])
        ->where('category', '[A-Za-z\d\-\_]+')
        ->where('slug', '[A-Za-z\d\-\_]+');

旅行指南路线:

Route::get('{pcategory}/{slug}',
      ['as' => 'travel-guide',
       'uses' => 'PublicController@getTravelguide'])
        ->where('pcategory', '[A-Za-z\d\-\_]+')
        ->where('slug', '[A-Za-z\d\-\_]+');

同时使用Regular Expression Constraints,但第二条路线travel-guide仍被重定向到第一条路线single.tour的视图。我尝试用{travel-guide} [静态]替换travel-guide,但仍然遇到同样的问题。虽然我通过将(php,html,jsp,aspx,css....etc)之类的任何扩展名附加到下面的网址示例中找到解决方案[最糟糕的想法]解决方案:

Route::get('{pcategory}/{slug}.php',
      ['as' => 'travel-guide',
       'uses' => 'PublicController@getTravelguide'])
        ->where('pcategory', '[A-Za-z\d\-\_]+')
        ->where('slug', '[A-Za-z\d\-\_]+');

它可以很好地返回自己的视图。但这不是最好的解决方案。谁能建议我解决这个问题?

0 个答案:

没有答案