拉拉维尔路由与不同数量的参数


Laravel Routing with different amount of paramenters

>我正在尝试通过以下途径完成控制我的函数:

Route::get('tri/{uniquename}/photos/gallery/{pic}',  array( 'as' => 'sportevent', 'uses' =>  'SporteventController@thisevent'));
Route::get('tri/{uniquename}/{tab}/{filter}/',  array( 'as' => 'sportevent', 'uses' =>  'SporteventController@thisevent'));
Route::get('tri/{uniquename}/{tab}/',  array( 'as' => 'sportevent', 'uses' =>  'SporteventController@thisevent'));

我知道,我可以将路线 2 和 3 结合起来

   Route::get('tri/{uniquename}/{tab}/{filter?}/',  array( 'as' => 'sportevent', 'uses' =>  'SporteventController@thisevent')); 

但这不是我的问题。

我的函数如下所示(仅相关代码):

public function thisevent($uniquename, $tab="main", $filter="",$pic=""){
    if($pic!=""){
        $tab = "photos";
    }
    .....
}

如果我请求如下 URL,该函数不会检测到 $pic 参数:

http://dev.hobbyathletes.com/tri/Ocean-Lava-Lancerote-Triathlon-2014/photos/gallery/6

我在这里做错了什么?

这是

正确的:

Route::get('tri/{uniquename}/{photos}/{gallery}/{pic}',  array( 'as' => 'sportevent', 'uses' =>  'SporteventController@thisevent'));

在你的代码中,Laravel认为你有两个参数$tab参数将同样$pic