Skip to content

Laravel search is package you can use it to make search query easy.

Notifications You must be signed in to change notification settings

AbdulrahmanMasoud/laravel-search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Search

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 name column in messages table and the data I will search about it's come from request key search like:($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 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

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 title and description column in messages table and the data I will search about it's come from request key search like:($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 title column in messages table and the data I will search about it's come from request key search like:($request->search)