2017-02-21 82 views
0

正在使用laravel路線從電子郵件中批准某些表單。 所以我有加密的一些變量和創建的鏈接 這就好比帶參數的Laravel路線

<a href="http://localhost/travel/tr/approveRequest?id=<?=$Encoded_travelRq_id?>&gsID<?=$Encoded_emp_gslab_id?>&decrypt<?=$Encoded_iv?>/">Approve</a>; 

現在怎麼路線可以爲此在laravel側,我可以單獨像ID的變量來寫,GSID,從網址解密並可以發送控制器的功能用於反對該路線?

回答

1

簡單地寫了GET路線approveRequest

Route::get('approveRequest', '[email protected]'); 

由於您使用的URL參數,你可以簡單地讓他們在approve()功能這樣

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

採用這種方法的順序參數無關緊要。

+0

這 作爲 HTTP生成我的網址://本地主機/旅遊/ TR /爲approveRequest ID = SR4%3D 我寫的路線爲 路線::得到( '爲approveRequest/{} PAR1',「Gslab \旅遊\ TravelRequestController @ approveTravelRequest'); 和控制器側 公共函數approveTravelRequest($ PAR1) \t { \t \t回波$ ID = $ PAR1; \t \t exit; \t} 還是沒有采取 路由沒有得到 – Prit

+0

不要把參數放在路由定義中。看看我是怎麼做的。因爲您使用帶有問號'?'的可選參數。 – EddyTheDove

0

有很多方法可以做到這一點。

方法1

如果您的網址,如下所示:

<a href="http://localhost/travel/tr/approveRequest/<?=$Encoded_travelRq_id?>/<?=$Encoded_emp_gslab_id?>/<?=$Encoded_iv?>">Approve</a>; 

你可以用參數如下面的路線。

Route::get('approveRequest/{par1}/{par2}/{par3}', '[email protected]'); 

而在你的函數來獲取相應的參數如下:

public function approve($par1,$par2,$par3,) 
{ 
    $id = $par1; 
    $gsID = $par2; 
    .... and so on for all your variables. 
} 

方法2使用請求方法:

如果您的網址是這樣的:

<a href="http://localhost/travel/tr/approveRequest?id=<?=$Encoded_travelRq_id?>&gsID<?=$Encoded_emp_gslab_id?>&decrypt<?=$Encoded_iv?>/">Approve</a>; 

然後定義路線如:

Route::post('approveRequest', '[email protected]'); 

然後在您的控制器功能,你得到的參數如下:

使用申請在YOUE控制器類的命名空間後

  namespace App\Http\Controllers; 
      use Illuminate\Http\Request; 

      class SomeClassController extends Controller { 

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

我通常用兩種方式:

1º方式:

該路線:

Route::get('approveRequest', '[email protected]'); 

控制器:

public function approve (Request $request) { 
    $var1 = $request->input('var1'); 
    $var2 = $request->input('var2'); 

    (...) do something with $var1 and $var2 
} 

2º方式:

路線:

Route::get('approveRequest/{var1}/{var2}', '[email protected]'); 

控制器:

public function approve ($var1, $var2) { 

    (...) do something with $var1 and $var2: they already have a instance 
} 

祝你好運!我希望有用。