簡體   English   中英

從路徑將參數傳遞給控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM