Laravel RESTful url参数处理

时间:2017-05-25 15:29:52

标签: php laravel rest restful-architecture

我正在设计一个RESTful应用程序,我想管理url参数,目前我在GET控制器中有这个功能列出所有资源api / v1 / cats:

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 / cats?name = Filip& color = black

2 个答案:

答案 0 :(得分:1)

你不应该在路由文件中添加任何东西来处理请求参数 只需在控制器中将它们作为\Input::all()

捕获

然后您可以搜索并检索结果。

您可以使用它来处理模型级别的搜索

https://github.com/nicolaslopezj/searchable

答案 1 :(得分:1)

要检索GET参数,您可以采用以下两种方式:

  • TypeHint Request类(全局命名空间)以注入Request对象并通过$request->get('filter')获取参数
  • 以这种方式使用request()辅助功能request()->get('filter')或快捷方式'request('filter')

关于REST API的小技巧: 我不知道您的项目的开发阶段,但有一些REST API的指南/最佳实践,我强烈建议您遵循它们。它将指导并帮助您制作出令人敬畏,强大,可维护的API。说到经验;)

以下是一个示例:http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

编辑:您当然可以使用$_GET