【问题标题】:Laravel RESTful url parameters handlingLaravel RESTful url 参数处理
【发布时间】:2017-05-25 15:29:52
【问题描述】:

我正在设计一个 RESTful 应用程序,我想管理 url 参数,目前我在控制器中有这个函数,用于列出所有资源 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

【问题讨论】:

    标签: php laravel rest restful-architecture


    【解决方案1】:

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

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

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

    https://github.com/nicolaslopezj/searchable

    【讨论】:

      【解决方案2】:

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

      • TypeHint 请求类(全局命名空间)注入请求对象并通过$request->get('filter') 获取您的参数
      • 以这种方式使用request()helper 函数request()->get('filter') 或快捷方式'request('filter')

      关于 REST API 的小技巧: 我不知道您项目的开发阶段,但有一些 REST API 指南/最佳实践,我强烈建议您遵循它们。它将指导并帮助您创建一个很棒的、健壮的、可维护的 API。说到经验;)

      这是一个例子:http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

      编辑:你当然仍然可以使用$_GET

      【讨论】:

      • 还有一种我喜欢的方式:$request->filter
      • 还有request()->filter ^^
      猜你喜欢
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 2013-10-12
      • 2018-06-17
      • 2018-07-20
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多