theamasoud / laravel-search
A Laravel package to search easily in columns, multiple columns and json columns
Installs: 28
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 1
Forks: 5
Open Issues: 0
pkg:composer/theamasoud/laravel-search
Requires
- phpunit/phpunit: ^9.5
README
Installation
First, install the package through Composer.
composer require theamasoud/laravel-search
or add this in your project's composer.json file .
"require": { "theamasoud/laravel-search": "1.*", }
Usage
Traits
TheAMasoud\LaravelSearch\Searchable
Add the Searchable trait to your model:
namespace App\Models; use Illuminate\Database\Eloquent\Model; use TheAMasoud\LaravelSearch\Searchable; class Message extends Model { use Searchable; protected $fillable = ['name','email','subject','message']; }
Normal Search
first how to make a normel search or fillter, you should use search() method.
and you should pass a two parameters column you need to search or fillter in and the request key thet come from your request
Request key:
Normal Search Example:
$messages = Message::search('name','search')->get();
- In this example I am trying to search or filter in
namecolumn in messages table and the data I will search about it's come from request keysearchlike:($request->search)
Search Multiple
By multiple search you can search in multiple columns and multiple values from request.
how to make a multiple search or fillter, you should use searchMultiple() method.
and you should pass a one array parameter column you need to search or fillter in array key and the request key thet come from your request as a value of key like:['name'=>'search_name','bio'=>'search_bio']
Request keys:
Search Multiple Example:
$messages = Message::searchMultiple(['title'=>'search_title','description'=>'search_desc'])->get();
- In this example I am trying to search or filter in
titlecolumn in messages table and the data I will search about it's come from request keysearch_titlelike:($request->search)etc... withdescription
Search In Multiple Columns
By search in multiple you can search in multiple columns and one value from request.
how to make a search in multiple or fillter, you should use searchInMultiple() method.
and you should pass a two parameters columns you need to search or fillter in and the request key thet come from your request as a value of key
Request keys:
Search In Multiple Example:
$messages = Message::searchInMultiple(['title','description','etc...'],'search')->get();
- In this example I am trying to search or filter in
titleanddescriptioncolumn in messages table and the data I will search about it's come from request keysearchlike:($request->search)
Search In Json Column
By search in json you can search in json column and value from request.
how to make a search in multiple or fillter, you should use jsonSearch() method.
and you should pass a two parameters column you need to search or fillter in and the request key thet come from your request as a value of key
Request keys:
Search In Json Example:
My json colums has:
{
"ar":"نص عربي",
"en":"English text"
}
$messages = Message::jsonSearch('title->ar','search')->get();
- In this example I am trying to search or filter in
titlecolumn in messages table and the data I will search about it's come from request keysearchlike:($request->search)