2017 © Pedro Peláez
 

laravel-plugin laravel-searchable

A php trait for searching on laravel eloquent models

image

astritzeqiri/laravel-searchable

A php trait for searching on laravel eloquent models

  • Wednesday, August 23, 2017
  • by astritzeqiri
  • Repository
  • 1 Watchers
  • 2 Stars
  • 135 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 12 % Grown

The README.md

Laravel Searchable

A php trait for searching on laravel eloquent models, (*1)

Requirements

  • PHP >= 5.4
  • Laravel >= 5.0

Installation

Add laravel-searchable to your composer.json file:, (*2)

"require": {
    "astritzeqiri/laravel-searchable": "~1.0"
}

Get composer to install the package:, (*3)

$ composer require astritzeqiri/laravel-searchable

Usage

Examples

First you need to go to your model and use the Searchable:, (*4)

// E.x. User.php
// add this before the class declaration
use AstritZeqiri\LaravelSearchable\Traits\Searchable;

// after the class declaration add this code snippet:
use Searchable;

Basic search:, (*5)

// This gives you a list of users that match the name john
$users = App\User::search('John', ['name'])->get();

// if you want the search to be exact you pass a third attribute
$users = App\User::search('John', ['name'], true)->get();

The array of search fields can also be set on the Model itself E.x. User.php:, (*6)


class User extends Model { // These are the default search fields. protected static $searchOn = ['first_name', 'last_name']; } // Now you can do this. // That gives you the users with the first_name or last_name Doe $users = App\User::search('Doe')->get(); // Of course if you give it the second attribute it ignores the model fields. // Now it only searches on the first_name not the last_name $users = App\User::search('Doe', ['first_name'])->get();

Sometimes you may want to search on some other fields that are not on the user model but in some other table related to the user:, (*7)


// Ex. You want to search users profile description which is contained in the profiles table, // you can do that by giving for example profile_description asf field. $users = App\User::search('Texas', ['profile_description'])->get(); // And then you'll have to declare a scope function on you User model for that field. // The function has to be called 'scopeSearchOn' and your field on studly_case // in this example it needs to be 'scopeSearchOnProfileDescription' class User extends Model { /** * Search on the users profile description. * * @param QueryBuilder $query * @param string $search [the string that we are searching for] * @param string $exact [if exact searching has been required] * * @return QueryBuilder $query */ public function scopeSearchOnProfileDescription($query, $search, $exact) { return $query->whereHas('profile', function($query) use($search) { return $query->where('description', 'LIKE', $search); }); } }

License

MIT, (*8)

The Versions

23/08 2017

dev-master

9999999-dev https://github.com/astritzeqiri/laravel-searchable

A php trait for searching on laravel eloquent models

  Sources   Download

MIT

The Requires

 

laravel search larave-search

02/03 2017

1.0.2

1.0.2.0 https://github.com/astritzeqiri/laravel-searchable

A php trait for searching on laravel eloquent models

  Sources   Download

MIT

The Requires

 

laravel search larave-search

02/03 2017

1.0.1

1.0.1.0 https://github.com/astritzeqiri/laravel-searchable

A php trait for searching on laravel eloquent models

  Sources   Download

MIT

The Requires

 

laravel search larave-search

28/02 2017

1.0.0

1.0.0.0 https://github.com/astritzeqiri/laravel-searchable

A php trait for searching on laravel eloquent models

  Sources   Download

MIT

The Requires

 

laravel search larave-search