2017-05-25 109 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'太^^ –