beaumind / searchable by beaumind

a simple php trait for laravel to search in models and related models
19
3
1
Package Data
Maintainer Username: beaumind
Maintainer Contact: a.hassani.sbu@gmail.com (A.Hassani)
Package Create Date: 2017-01-04
Package Last Update: 2017-01-04
Language: PHP
License: MIT
Last Refreshed: 2024-05-03 15:12:46
Package Statistics
Total Downloads: 19
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 3
Total Watchers: 1
Total Forks: 1
Total Open Issues: 0

searchable

a simple php trait for laravel >= 5.0 to search in models and related models

Installation

Simply Run the Composer require comand.

composer require beaumind/searchable

Usage

Add the trait to your model and your search rules.

use Beaumind\Searchable\Searchable;

class Post extends \Eloquent
{
    use Searchable;

    /**
     * Searchable columns.
     *
     * @var array
     */
    public $searchable_fields = [
      title,
      body,
      user.name,
      uesr.email
    ];


    public function user()
    {
        return $this->belongsTo('User');
    }

}

Now you can search your model.

// Simple search
$posts = Post::search($query)->get();

// Search and get relations
// It will not get the relations if you don't do this
$posts = Post::search($query)
            ->with('user')
            ->get();

Search Paginated

As easy as laravel default queries

// Search with relations and paginate
$posts = Post::search($query)
            ->with('user')
            ->paginate(20);

Mix queries

Search method is compatible with any eloquent method. You can do things like this:

// Search only active posts
$posts = Post::where('status', 'active')
            ->search($query)
            ->paginate(20);