2015-09-30 49 views
0

Laravel 5.1中有一個控制器方法,它同時接受GET和POST請求。Laravel 5.1從漂亮的URL獲得變量請求對象

有一些變數我必須傳遞給該方法。

所以我想傳遞變量是這樣的:

http://localhost/<methodName>/<var1 value>/<var2 value> 

我想Laravel的Request對象與這些變量來填充。

我當然可以這樣做:

http://localhost/<MethodName>?var1=var1_value&var2=var2_value 

但我想保持前面提到的漂亮的網址,仍然能夠填充Request對象。

public function methodName(Request $request) 
{ 
    dd($request); 
} 

這將返回一個空數組。

是的,我可以這樣做:

public function methodName(Request $request, $var1= "", $var2 = "") 
{ 
    dd($var1." ".$var2); 
} 

這將返回變量,但我真的希望有可能的話Request對象填充。

我使用的路線是:

Route::match(['get', 'post'], 
'/<method-name>/{<var1_value>?}/{<var2_value>?}/{<var3_value>?}', 
'<ControllerName>@<methodName>'); 

郵政變量是沒有問題的。

+0

你是什麼意思「Laravel的Request對象來填充」是什麼意思? – Amarnasan

回答

3

在你的控制器中,在$ request對象上使用route()函數。

$request->route('var1'); 

當然參數的名稱必須與您在您的routes.php文件定義

Route::get('your/route/{var1}/{var2}','[email protected]'); 
+0

不是我正在尋找的東西,但是這確實提供了一種從Request對象中檢索變量的方法。它確實有效。我在我的路由呼叫中鏈接了一個where方法,我也可以驗證路由。我猜這會起作用。非常感謝Carter。 –

+0

@SworupShakya不客氣:) – Carter