Package Data | |
---|---|
Maintainer Username: | rcbytes |
Maintainer Contact: | lab.rafamello@gmail.com (Rafael Mello Campanari) |
Package Create Date: | 2015-11-26 |
Package Last Update: | 2015-11-29 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-26 15:12:49 |
Package Statistics | |
---|---|
Total Downloads: | 15 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 7 |
Total Watchers: | 3 |
Total Forks: | 0 |
Total Open Issues: | 0 |
Query Eloquent
models easily. it is ideal for who uses Laravel as an API
Via Composer
$ composer require rcbytes/fetch
On config/app.php
Service Provider:
rcbytes\fetch\FetchServiceProvider::class
Facade:
'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);
}
...
}
Get all Users
with their Posts
and Friends
GET /user?with=["posts", "friends"]
Get Users
with their Posts
and Friends
that age
equals 30
GET /user?with=["posts", "friends"]&where={age: 30}
Get Users
with their Posts
and their Comments
and Friends
that have at least one Friend
with age
greater than 30
GET /user?with=["posts.comments", "friends"]&where={"friends.age":[ ">", 30]}
Get User
of key = 1
with their Posts
, Friends
and Friends of Friends
GET /user/1?with=["posts", "friends.friends"]
with
: It expects the Models
to have the relationship method
. Accepts dot notation
, both Models
come when used. eg.: ?with:["posts.comments"]
. User::posts
and Post::comments
methods must existwhere
: It expects the Models
to have the queried columns. Accepts dot notation
, queries the relationship, if found at least one that matches the criteria, it returns the Model. eg.: ?where:{age: 30}
, ?where:{age:[">", 30]}
, ?where:{"friends.age":[">", 30]}
take
: takes this number of Models
paginate
: also known as per page
page
: page numberPlease see CHANGELOG for more information what has changed recently.
$ to do
Please see CONTRIBUTING and CONDUCT for details.
If you discover any security related issues, please email lab.rafamello@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.