2017 © Pedro Peláez
 

library eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

image

blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  • Thursday, June 14, 2018
  • by mhkb
  • Repository
  • 6 Watchers
  • 3 Stars
  • 3,129 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 44 Versions
  • 65 % Grown

The README.md

Add extra search and order functionality to Laravel Eloquent models.

Latest Version Build Status Software License StyleCI Quality Score Total Downloads, (*1)

This package provides a trait that adds extra ways to order and search complex models. With Eloquent, when relations are used (eg. HasOne, HasMany, BelongsTo) the primary model can't be sorted using a field in a related table., (*2)

For example, you might have a list of Customers with a one-to-one relation (HasOne) to a Contacts model for the Customer contact., (*3)

class Customer extends Eloquent
{
    public function sales_rep()
    {
        return $this->hasOne(Contact::class, 'id', 'sales_rep_id');
    }
}

If you had a table of customers and wanted to sort it by Contact name, you nomrally wouldn't be able to in Laravel using the relation above, but you could with this package., (*4)

Installation

This package can be installed through Composer., (*5)

$ composer require blasttech/eloquent-related-plus

Usage

To add complex order and search behaviour to your model you must: 1. specify that the model will conform to Blasttech\EloquentRelatedPlus\RelatedPlusInterface
2. use the trait Blasttech\EloquentRelatedPlus\RelatedPlusTrait, (*6)

Using the earlier example:, (*7)

use App\Contact;
use Blasttech\EloquentRelatedPlus\RelatedPlusInterface;
use Blasttech\EloquentRelatedPlus\RelatedPlusTrait;

class Customer extends Eloquent implements RelatedPlusInterface
{
    use RelatedPlusTrait;

    public function sales_rep()
    {
        return $this->hasOne(Contact::class, 'id', 'sales_rep_id');
    }
}

modelJoin

Use this scope to add a join for a related model. * modelJoin($relation_name, $operator = '=', $type = 'left', $where = false, $related_select = true), (*8)

Example

namespace App\Http\Controllers;

use App\Customer;

class CustomerController extends Controller
{
    public function getCustomers()
    {
        return Customer::select('*')
            ->modelJoin('Contacts', '=', 'left', false, false)
            ->get(); 
    }

    ...
}

This will add a left join to the Contacts model using the Contacts() relation, using 'where' instead of 'on' and include all the fields from the model in the select., (*9)

$relation_name

The name of the relation. Only BelongsTo, HasOne, HasMany or HasOneOrMany relations will work., (*10)

$operator

The operator used to join the related table. This will default to '=' but any of the standard Laravel join operators can be used., (*11)

$type

The type of join. This will default to 'left' but any of the standard Laravel join types are allowed., (*12)

$where

The method of joining the table. The default (false) uses an 'on' statement but if true, a where statement is used., (*13)

$related_select

The $related_select option determines if the fields in the joined table will be included in the query. If true, the field names will be in the format 'table_name.column_name', for example, 'customer.contact_name' with the table name and period (.) included in the field name. This is to allow fields from joined tables to be used when they have the same column names., (*14)

orderByCustom

  • orderByCustom($orderField, $dir, $orderFields = null, $orderDefaults = null)

Example

use App\Customer;
use Blasttech\EloquentRelatedPlus\RelatedPlusInterface;
use Blasttech\EloquentRelatedPlus\RelatedPlusTrait;

class CustomerController extends Controller
{
    public function getCustomers()
    {
        return Customer::select('*')
            ->modelJoin('Contacts', '=', 'left', false, false)
            ->orderByCustom('contact_name'); 
    }

    ...
}

This will add a left join to the Contacts model using the Contacts() relation and then sort it by the contact_name., (*15)

Example

use Blasttech\EloquentRelatedPlus\RelatedPlusInterface;
use Blasttech\EloquentRelatedPlus\RelatedPlusTrait;

class MyModel extends Eloquent implements RelatedPlusInterface
{
    use RelatedPlusTrait;

    public function getContact($contact_name)
    {
        return Customer::select('*')
            ->modelJoin('Contacts', '=', 'left', false, false)
            ->search($contact_name); 
    }

    ...
}

This will add a left join to the Contacts model using the Contacts() relation, and search for $contact_name., (*16)

License

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

Credits

The example shown in http://laravel-tricks.com/tricks/automatic-join-on-eloquent-models-with-relations-setup was used as a basis for the modelJoin and relationJoin scopes., (*18)

The Versions

14/06 2018

dev-master

9999999-dev https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

14/06 2018

0.3.33

0.3.33.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

14/02 2018

0.3.32

0.3.32.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

13/02 2018

dev-analysis-zdpoDj

dev-analysis-zdpoDj https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

13/02 2018

0.3.31

0.3.31.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

13/02 2018

0.3.30

0.3.30.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

12/02 2018

0.3.29

0.3.29.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

12/02 2018

0.3.28

0.3.28.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

12/02 2018

0.3.27

0.3.27.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

11/02 2018

0.3.26

0.3.26.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

09/02 2018

0.3.25

0.3.25.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

09/02 2018

0.3.24

0.3.24.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

09/02 2018

0.3.23

0.3.23.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

08/02 2018

0.3.22

0.3.22.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

08/02 2018

0.3.21

0.3.21.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

08/02 2018

0.3.20

0.3.20.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

08/02 2018

0.3.19

0.3.19.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

07/02 2018

0.3.18

0.3.18.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

07/02 2018

0.3.17

0.3.17.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

07/02 2018

0.3.16

0.3.16.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

07/02 2018

0.3.15

0.3.15.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

07/02 2018

0.3.14

0.3.14.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

07/02 2018

0.3.13

0.3.13.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

06/02 2018

0.3.12

0.3.12.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

06/02 2018

0.3.11

0.3.11.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

06/02 2018

0.3.10

0.3.10.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

06/02 2018

0.3.9

0.3.9.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

06/02 2018

0.3.8

0.3.8.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

06/02 2018

0.3.7

0.3.7.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

05/02 2018

0.3.6

0.3.6.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

05/02 2018

0.3.5

0.3.5.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

04/02 2018

0.3.4

0.3.4.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

04/02 2018

0.3.3

0.3.3.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

04/02 2018

0.3.2

0.3.2.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

04/02 2018

0.3.1

0.3.1.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

04/02 2018

0.3.0

0.3.0.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

31/01 2018

0.2.2

0.2.2.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

28/01 2018

0.2.1

0.2.1.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

27/01 2018

0.2.0

0.2.0.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

24/01 2018

0.1.4

0.1.4.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

23/01 2018

0.1.3

0.1.3.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

21/01 2018

0.1.2

0.1.2.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

21/01 2018

0.1.1

0.1.1.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model join orderby

17/01 2018

0.1.0

0.1.0.0 https://github.com/blasttech/eloquent-related-plus

Adds search and order functionality to Laravel Eloquent related models

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michael Blair

laravel eloquent model orderby