![](/img/trans.png)
[英]Laravel REST API: Translating query string parameters into database search queries
[英]Laravel REST API with query parameters
因此,我已经启动并运行了API的一部分,但仍停留在某些方面。 我正在使用Laravel的REST控制器,并且喜欢使用诸如Response::eloquent($query);
方法的能力Response::eloquent($query);
但是,使用此方法:
首先,我建议您观看“ 教狗到REST [链接断开]”,以获取有关格式化REST路由的更多信息。
至于您的问题:
Input::get() and Input::all()
方法处理输入字段。 您可能还需要使用laravel的Validator类来验证传入的数据。 假设您如示例中所述从输入中获取了id和order_by字段:
$id = Input::get('id'); $order_criteria = Input::get('order_by');
使用Fluent Query Builder
DB::table('dbtable')->where('id', '=', $id)->order_by($order_criteria, 'desc')->first();
//使用first(),因为我们非常确定只能得到一个结果,对于可能返回更多结果的不同标准,您可能想使用-> get()。
我为此发布了一个程序包。
您可以查看此https://github.com/selahattinunlu/laravel-api-query-builder
对于Wiki页面: https : //github.com/selahattinunlu/laravel-api-query-builder/wiki
该程序包使用url参数创建查询。
例:
/ api / users?name = se *&age!= 18&order_by = age,asc&limit = 2&columns = name,age,city_id&includes = city
和结果查询
Users::with(['city'])->select(['name', 'age', 'city_id'])
->where('age', '!=', 18)
->where('name', 'like', 'se%')
->orderBy('age', 'asc')
->take(2)
用法:
$queryBuilder = new QueryBuilder(new User, $request);
return response->json([
'data' => $queryBuilder->build()->paginate(),
.
.
]);
就这样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.