2015-11-30 571 views
2

是否有任何方法將$ _SERVER ['REQUEST_URI']變量傳遞給Laravel 5中的控制器?將路由變量從路由傳遞到Laravel 5中的控制器

+1

'通'從哪裏?是不是'$ _SERVER'是一個PHP全局變量,因此可以在任何地方使用? – Amarnasan

+0

從routes.php傳遞給控制器​​。我需要知道routes.php中的URL是在控制器被綁定之前是什麼的。 –

+0

正如我所說的,'$ _SERVER'不會改變。您可以從您的控制器訪問它。 – Amarnasan

回答

0

您可以將$request變量添加到您的控制器功能中。此變量包含有關請求的所有信息,包括路由。

例如:

Route::get('/test/url', function (\Illuminate\Http\Request $request) { 
    dd($request->getRequestUri()); 
}); 

將輸出

"/test/url" 

有關,您可以訪問the documentation請求變量更多信息。

1

您可以訪問$_SERVER向右走,或使用更「laravelish」的方式與適當的請求包裝:Request::server('REQUEST_URI')$request->getRequestUri()

0

由於Laravel使用的Symfony的HttpFoundation組件來管理請求/響應流程。

它提供了有用的函數來獲取服務器變量。只需添加$request變量作爲參數傳遞給你的控制器功能&然後使用訪問:

  1. $請求 - > getRequestUri()//返回請求的URI(路徑和查詢字符串)。
  2. $ request-> getUri()//爲請求生成一個規範化的URI(URL)。

對於其它功能,請參閱:http://api.symfony.com/2.7/Symfony/Component/HttpFoundation/Request.html

1

我的解決方案是唯一有效的,如果你不明確要求$ _ SERVER [「REQUEST_URI」],說實話我覺得這種方法更簡單,使用更方便以及。

那麼,如果你想從URL傳遞一個變量更容易的方法。如果您通過在這樣的laravel刀片頁面的URL ...

<a href="/details/{{ $id }}/{{ $firstname }}">Pass Details</a> 

然後你可以簡單地從路由訪問的變量,然後將它們發送到控制器。

Route::get('/details/{id}/{firstname}', '[email protected]'); 

變量現在存儲爲$ id和$ firstname,現在可以從您的控制器訪問,最後在您的控制器中,您可以對這些變量執行所需操作。

public function ThisMethod($id, $firstname){ 
    dd($id, $firstname); 
} 
相關問題