Php 将参数从路由传递给控制器

Php 将参数从路由传递给控制器,php,laravel,laravel-5,Php,Laravel,Laravel 5,在我的路由文件中,我有 Route::get('/{token}/student', [ 'uses' => 'SurveyController@resumeSurvey', 'as' => 'student', ]); Route::get('/{token}/city', [ 'uses' => 'SurveyController@resumeSurvey', 'as' => 'city', ]); 所以路线不是“学生”就是“城市

在我的路由文件中,我有

Route::get('/{token}/student', [
    'uses' => 'SurveyController@resumeSurvey',
    'as' => 'student',
]);


Route::get('/{token}/city', [
    'uses' => 'SurveyController@resumeSurvey',
    'as' => 'city',
]);
所以路线不是“学生”就是“城市”。如何确定控制器方法中的哪一个?我应该像这样安排我的路线吗?我应该给他们指出两种不同的方法吗

我可以很容易地传入
{token}
,例如,只需使用

public function resumeSurvey($token)
{

如果你想做不同的事情,你应该使用不同的方法

例如:

Route::get('/{token}/student', [
    'uses' => 'SurveyController@resumeStudent',
    'as' => 'student',
]);


Route::get('/{token}/city', [
    'uses' => 'SurveyController@resumeCity',
    'as' => 'city',
]);
在控制器中,您应该有两种方法:

public function resumeStudent($token) {

}

public function resumeCity($token) {

}

然后,您的第一条路由转到ResumeStudion,第二条路由转到resumeCity,在控制器内部,您可以通过首先获取路由对象
照明\路由\路由
,然后调用其方法
获取名称
,来获取当前路由名称

接下来的两种方法是相同的

public function resumeSurvey($token)
{
    $routeName = Route::getCurrentRoute()->getName();

    $routeName = $this->getRouter()-> getCurrentRoute()->getName());
}

使用两种不同的方法有什么问题?从技术上讲没有什么问题。但我希望我的路线文件尽可能小。我确实看到了
request
类的
$request->path()
方法。我可以
explode()