rcbytes / fetch
获取您的eloquent模型
dev-master / 1.0.x-dev
2015-11-29 14:42 UTC
Requires
- php: >=5.3.0
- illuminate/support: ~5.1
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
This package is not auto-updated.
Last update: 2024-09-11 23:13:44 UTC
README
轻松查询Eloquent模型。非常适合使用Laravel作为API的用户
安装
通过Composer
$ composer require rcbytes/fetch
在 config/app.php
服务提供者
rcbytes\fetch\FetchServiceProvider::class
外观
'Fetch' => rcbytes\fetch\Fetch::class
用法
控制器
... class UserController extends Controller public function index(Request $request) { // your criteria will overwrite criteria from Request->where $where = [ "account_id" => $request->user()->account_id ]; return Fetch::all(App\User::query(), $where); } public function show($id) { // third parameter $key defaults to "id" return Fetch::one(App\User::query(), $id); } ...
模型
class User implements AuthenticatableContract, CanResetPasswordContract { ... public function friends() { return $this->hasMany(\App\User::class); } public function posts() { return $this->hasMany(\App\Model\Post::class); } ... }
请求
获取所有带有他们的 Posts 和 Friends 的 Users
GET /user?with=["posts", "friends"]
获取年龄等于30的 Users 带有他们的 Posts 和 Friends
GET /user?with=["posts", "friends"]&where={age: 30}
获取至少有一个年龄大于30的 Friend 的 Users 带有他们的 Posts 和 Comments 以及 Friends
GET /user?with=["posts.comments", "friends"]&where={"friends.age":[ ">", 30]}
获取 key = 1 的 User 带有他们的 Posts、Friends 和 Friends of Friends
GET /user/1?with=["posts", "friends.friends"]
参数
- array
with:它期望模型具有关系方法。接受点表示法,使用时同时接受模型。例如:?with:["posts.comments"]。必须存在User::posts和Post::comments方法 - object|mixed
where:它期望模型具有查询的列。接受点表示法,查询关系,如果找到至少一个符合条件的关系,则返回模型。例如:?where:{age: 30}、?where:{age:[">", 30]}、?where:{"friends.age":[">", 30]} - integer
take:获取此数量的模型 - integer
paginate:也称为每页数量 - integer
page:页码
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
测试
$ to do
贡献
请参阅CONTRIBUTING和CONDUCT以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件lab.rafamello@gmail.com联系,而不是使用问题跟踪器。
致谢
许可
MIT许可证(MIT)。请参阅许可文件以获取更多信息。