2017 © Pedro Peláez
 

library fetch

fetch your eloquent models

image

rcbytes/fetch

fetch your eloquent models

  • Sunday, November 29, 2015
  • by rcbytes
  • Repository
  • 2 Watchers
  • 7 Stars
  • 9 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Fetch

![Software License][ico-license], (*1)

Query Eloquent models easily. it is ideal for who uses Laravel as an API, (*2)

Install

Via Composer, (*3)

``` bash $ composer require rcbytes/fetch, (*4)


On `config/app.php` Service Provider: ```php rcbytes\fetch\FetchServiceProvider::class

Facade:, (*5)

'Fetch' => rcbytes\fetch\Fetch::class

Usage

Controller

``` php ..., (*6)

class UserController extends Controller, (*7)

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);

}

..., (*8)


#### Model: ```php class User implements AuthenticatableContract, CanResetPasswordContract { ... public function friends() { return $this->hasMany(\App\User::class); } public function posts() { return $this->hasMany(\App\Model\Post::class); } ... }

Request :

Get all Users with their Posts and Friends, (*9)

GET /user?with=["posts", "friends"]

Get Users with their Posts and Friends that age equals 30, (*10)

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, (*11)

GET /user?with=["posts.comments", "friends"]&where={"friends.age":[ ">", 30]}

Get User of key = 1 with their Posts, Friends and Friends of Friends, (*12)

GET /user/1?with=["posts", "friends.friends"]

Parameters:

  • array 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 exist
  • object|mixed where: 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]}
  • integer take: takes this number of Models
  • integer paginate: also known as per page
  • integer page: page number

Change log

Please see CHANGELOG for more information what has changed recently., (*13)

Testing

bash $ to do, (*14)

Contributing

Please see CONTRIBUTING and CONDUCT for details., (*15)

Security

If you discover any security related issues, please email lab.rafamello@gmail.com instead of using the issue tracker., (*16)

Credits

License

The MIT License (MIT). Please see License File for more information., (*17)

The Versions

29/11 2015

dev-master

9999999-dev https://github.com/rcbytes/fetch

fetch your eloquent models

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel fetch eloquent