带参数的 Laravel 路由

Pri*_*rit 6 routes laravel

我正在使用 laravel 路线来批准电子邮件中的某些表格。所以我加密了一些变量并创建了链接,就像

<a href="http://localhost/travel/tr/approveRequest?id=<?=$Encoded_travelRq_id?>&gsID<?=$Encoded_emp_gslab_id?>&decrypt<?=$Encoded_iv?>/">Approve</a>;
Run Code Online (Sandbox Code Playgroud)

现在如何在 Laravel 端为此编写路由,我可以在其中分离诸如 id、gsID、从 url 解密之类的变量,并可以发送到针对该路由使用的控制器函数?

小智 9

通常我使用两种方式:

1º方式:

路线:

Route::get('approveRequest', 'ApproveController@approve');
Run Code Online (Sandbox Code Playgroud)

控制器:

public function approve (Request $request) {
    $var1 = $request->input('var1');
    $var2 = $request->input('var2');
    
    // (...) do something with $var1 and $var2
}
Run Code Online (Sandbox Code Playgroud)

2º方式:

路线:

Route::get('approveRequest/{var1}/{var2}', 'ApproveController@approve');
Run Code Online (Sandbox Code Playgroud)

控制器:

public function approve ($var1, $var2) {
    
    // (...) do something with $var1 and $var2: they already have a instance
}
Run Code Online (Sandbox Code Playgroud)


Edd*_*ove 5

简单地写一个GET路由到approveRequest

Route::get('approveRequest', 'ApproveController@approve');
Run Code Online (Sandbox Code Playgroud)

因为您使用的是 URL 参数,所以您可以approve()像这样简单地在函数中获取它们

public function approve(Request $request) 
{
     $id = $request->id;
     $gsID = $request->get('gsID');
     .... and so on for all your variables.
}
Run Code Online (Sandbox Code Playgroud)

使用这种方法,参数的顺序无关紧要。