craftcodery/laravel-searchable

Searchable trait for Laravel Eloquent models

3.2.0 2024-03-26 22:05 UTC

This package is auto-updated.

Last update: 2024-03-26 22:06:08 UTC


README

This package makes it easy to search your Laravel models.

Installation

You can install the package via composer:

composer require craftcodery/laravel-searchable

Usage

Preparing your models

In order to search through models you'll have to use the Searchable trait and add the toSearchableArray method.

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use CraftCodery\Searchable\Searchable;

class User extends Model
{
    use Searchable;
    
    /**
     * Get the searchable data array for the model.
     *
     * @return array
     */
    public function toSearchableArray()
    {
        return [
            'columns' => [
                'users.name'  => 60,
                'users.email' => 60,
                'locations.city' => 40,
            ],
            'joins'   => [
                'locations' => [
                    'users.location_id',
                    'locations.id'
                ],
            ],
            'groupBy' => 'users.id'
        ];
    }
}

Searching models

To search your models, just use the search method.

$users = User::search('john')->get();

Configuring search matchers

You can configure the different search matchers and weights given to each used by the package.

php artisan vendor:publish --tag=searchable-config

License

The MIT License (MIT). Please see License File for more information.