| 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: | 2025-10-19 15:06:09 |
| Package Statistics | |
|---|---|
| Total Downloads: | 20 |
| 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);