Laravel 如何结合这两条路线?

Laravel 如何结合这两条路线?,laravel,laravel-4,routing,laravel-5,Laravel,Laravel 4,Routing,Laravel 5,我有两条路线: Route::post('/post', array( 'uses' => 'PostController@newPost' ) ); Route::post('/post/picture', array( 'uses' => 'PostController@newPost' ) ); 在实际控制器中,我区分了这两个参数(因为它们使用相同的控制器),但如何将上述两条路线组合起来?请尝试以下内容 Rou

我有两条路线:

Route::post('/post',
    array(
        'uses' => 'PostController@newPost'
    )
);

Route::post('/post/picture',
    array(
        'uses' => 'PostController@newPost'
    )
);

在实际控制器中,我区分了这两个参数(因为它们使用相同的控制器),但如何将上述两条路线组合起来?

请尝试以下内容

Route::post('/post/{picture?}',
    array(
        'uses' => 'PostController@newPost'
    )
);
Route::post('/post/{myvar?}',
    array(
        'uses' => 'PostController@newPost'
    )
)->where('myvar','picture');;
{}
括号中包装
图片
,将该URL段视为一个参数。在参数末尾使用
将其视为可选。有一点需要注意:这也会引起类似的问题

/post/some-other-thing
如果你想抓住其他项目,试试下面的方法

Route::post('/post/{picture?}',
    array(
        'uses' => 'PostController@newPost'
    )
);
Route::post('/post/{myvar?}',
    array(
        'uses' => 'PostController@newPost'
    )
)->where('myvar','picture');;

方法的第二个参数,其中
方法可以是任何PCRE正则表达式

如果
picture
需要正好是单词
picture
,该怎么办?您的路线允许url中的任何内容,如
/post/hey
/post/hello
。我只需要
/post/picture
。但您更新的路线没有到控制器的链接。