2017-05-25 49 views
0

我設計一個RESTful應用程序,我想管理的URL參數,此刻我在控制器此功能爲GET該列表中的所有資源API/V1 /貓:Laravel REST風格的URL參數處理

public function index() 
{ 
    $cats = Cats::all(); 

    foreach ($cats as $cat) { 
     $requirement->view_requirement = [ 
       'href' => 'api/v1/cat/' . $cat->id, 
       'method' => 'GET' 
     ]; 
    } 

    $response = [ 
      'msg' => 'List of all Cats', 
      'cats' => $cats 
    ]; 
    return response()->json($response, 200); 
} 

和路線是:

Route::group(['prefix' => 'v1'], function() { 

Route::resource('cats', 'CatController', [ 
     'except' => ['edit', 'create'] 
]); 

這與管理網址的最佳方式,例如搜索參數,如:?API/V1 /貓的名字=菲利普&顏色=黑色

回答

0

你不應該添加任何東西到路徑文件來處理請求參數 只是在控制器中捕獲它們作爲\Input::all()

然後您可以搜索並檢索結果。

任何你可以用這個來處理模型級搜索

https://github.com/nicolaslopezj/searchable

1

要檢索GET參數,你可以做兩種方式:

  • TypeHint Request類(全局命名空間)注入請求對象並通過$request->get('filter')得到你的參數
  • 使用request()幫助函數這種方式request()->get('filter')或者快捷方式「請求(」過濾器')

關於REST API的小技巧: 我不知道你的項目的發展階段,但也有一些準則/ REST API和我的最佳做法強烈建議您跟着他們。它將指導並幫助您製作出一個出色,穩健,可維護的API。經驗說起;)

下面是一個例子:http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

編輯:當然,你可以仍然使用$_GET

+0

也有這種方式,我喜歡:'$請求 - > filter' – louisfischer

+1

和' request() - > filter'太^^ –