Php 具有不同参数量的Laravel路由

Php 具有不同参数量的Laravel路由,php,laravel,laravel-4,url-routing,Php,Laravel,Laravel 4,Url Routing,我试图通过以下途径实现控制我的功能: Route::get('tri/{uniquename}/photos/gallery/{pic}', array( 'as' => 'sportevent', 'uses' => 'SporteventController@thisevent')); Route::get('tri/{uniquename}/{tab}/{filter}/', array( 'as' => 'sportevent', 'uses' => 'S

我试图通过以下途径实现控制我的功能:

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参数:

我做错了什么?

这是对的:

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

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

在你的url中,你可以在$tab变量中找到$pic。你不能将所有这些路由组合到一个方法中。是的,这是正确的,谢谢。我现在这样做了,因为我对下面的答案进行了评论。谢谢,这是一种不正确的回答,但这并不能解决我的问题。。。我现在以“tri/{uniquename}/{tab?}/{filter?}/{pic?}/”的形式完成了路由,并在我的函数中使用/photos/gallery/排除了异常