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-12-15 15:09:37 |
Package Statistics | |
---|---|
Total Downloads: | 19 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 3 |
Total Watchers: | 1 |
Total Forks: | 1 |
Total Open Issues: | 0 |
a simple php trait for laravel >= 5.0 to search in models and related models
Simply Run the Composer require comand.
composer require beaumind/searchable
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();
As easy as laravel default queries
// Search with relations and paginate
$posts = Post::search($query)
->with('user')
->paginate(20);
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);