所以我已经启动并运行了一部分API,但我坚持一些事情。我正在使用Laravel的REST控制器,并且喜欢使用诸如Response::eloquent($query);
之类的方法的能力但是,在使用它时:
答案 0 :(得分:4)
首先,我建议您观看Teach a Dog to REST [Link broken],了解有关格式化REST路线的更多信息。
关于你的问题:
Input::get() and Input::all()
方法处理输入字段。您可能还需要使用laravel的Validator类验证传入数据。假设您从示例中提到的输入中获取了id和order_by字段:
Input::get() and Input::all()
使用Fluent Query Builder
$id = Input::get('id');
$order_criteria = Input::get('order_by');
//使用first(),因为我们非常确定我们只得到一个结果,对于不同的标准,可能会返回多个结果,您可能想要使用 - > gt; get()代替。
答案 1 :(得分:3)
我为此发布了一个包。
您可以查看this question
对于维基页面:https://github.com/selahattinunlu/laravel-api-query-builder
此包使用url参数创建查询。
示例:
?/ API /用户名= SE *安培;年龄= 18&安培;!ORDER_BY =年龄,ASC&安培;极限= 2及列=姓名,年龄,city_id&安培;包括=城市
结果查询
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(),
.
.
]);
这就是全部。