在我的路线档案中,我有;
Route::get('/{token}/student', [
'uses' => 'SurveyController@resumeSurvey',
'as' => 'student',
]);
Route::get('/{token}/city', [
'uses' => 'SurveyController@resumeSurvey',
'as' => 'city',
]);
所以路线是“学生”或“城市”。如何确定控制器方法中的哪一个?我是否应该像这样构建我的路线?我应该只指出两种不同的方法吗?
我可以轻松传入{token}
,例如只用;
public function resumeSurvey($token)
{
答案 0 :(得分:0)
如果您想要做不同的事情,您应该使用不同的方法。
示例:
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) {
}
然后您的第一条路线转到 resumeStudent 以及通往 resumeCity 的路线。
答案 1 :(得分:0)
在控制器内部,您可以通过首先获取路由对象Illuminate\Routing\Route
来获取当前路由名称,然后调用其方法getName
。
接下来的两种方式是相同的。
public function resumeSurvey($token)
{
$routeName = Route::getCurrentRoute()->getName();
$routeName = $this->getRouter()-> getCurrentRoute()->getName());
}