[英]Access Laravel route from controller or pass parameter to controller from route
[英]Pass parameter to controller from route
在我的路線文件中,我有;
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) {
}
然后,您的第一個路線將到達resumeStudent ,而其他路線將到達resumeCity 。
在控制器內部,您可以通過首先獲取路徑對象Illuminate\\Routing\\Route
,然后調用其方法getName
來獲取當前路徑名稱。
接下來的兩種方式是相同的。
public function resumeSurvey($token)
{
$routeName = Route::getCurrentRoute()->getName();
$routeName = $this->getRouter()-> getCurrentRoute()->getName());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.