Laravel search is package you can use it to make search query easy.
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.*",
}
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'];
}
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
$messages = Message::search('name','search')->get();
name
column in messages table and the data I will search about it's come from request key search
like:($request->search)
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']
$messages = Message::searchMultiple(['title'=>'search_title','description'=>'search_desc'])->get();
title
column in messages table and the data I will search about it's come from request key search_title
like:($request->search)
etc... with description
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
$messages = Message::searchInMultiple(['title','description','etc...'],'search')->get();
title
and description
column in messages table and the data I will search about it's come from request key search
like:($request->search)
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
{
"ar":"نص عربي",
"en":"English text"
}
$messages = Message::jsonSearch('title->ar','search')->get();
title
column in messages table and the data I will search about it's come from request key search
like:($request->search)