2017-08-24 39 views
0

我正在爲應用程序創建API。現在,應用程序開發人員希望我創建一個固定的基本URL,並將ROUTE NAME(將指向控制器函數)作爲POST變量傳遞。例如:Laravel基於查詢字符串或發佈變量的呼叫控制器

http://example.com/Api

和POST變量,如:

action=>'ROUTE_NAME' 

但laravel我們可以定義基於URL的部分作爲路線:

http://example.com/Api/ROUTE_NAME

我已經嘗試過使用單個控制器並根據SWITCH語句加載其他控制器。但這似乎並不是一種標準做法,因爲每次創建新的API時都需要添加切換條件。中間件也不能動態地在加載的控制器上工作。 laravel有沒有辦法實現這一目標?我使用laravel 5.4

+0

在路由中使用前綴 –

+0

@GauravRai「Api」已經是一個前綴。我需要的是一個修復url,它是基於action參數的所有API和加載控制器的http://example.com/Api。 –

回答

0

你可以實現一個middleware/Api路線,從$request得到ROUTE_NAME上偵聽,那麼你可以使用Route()輔助函數來發現,命名的路由的URL,然後重定向請求到那條路線。

喜歡的東西:

// Generating ROUTE_NAME url... 
$url = route($request->route_name); 

// Redirect to that route... 
return redirect()->route($url); 

顯然,你需要添加代碼來處理,如果它沒有找到一個途徑,等等,也許返回一個JSON響應回來正確的錯誤代碼等