technote/laravel-search-helper

Search helper for laravel
5,645 2
Install
composer require technote/laravel-search-helper
Latest Version:v0.2.28
PHP:^7.4|^8.0
License:MIT
Last Updated:Jul 22, 2023
Links: GitHub  ·  Packagist
Maintainer: technote

Laravel Search Helper

CI Status codecov CodeFactor License: MIT PHP: >=7.4

Read this in other languages: English, 日本語.

Search helper for Laravel.

Packagist

Table of Contents

Install

composer require technote/laravel-search-helper

Usage

  1. Implement Searchable Contract and Searchable Trait.

  2. Implement setConditions method.

    <?php
    namespace App\Models;
    
    use Eloquent;
    use Illuminate\Database\Eloquent\Builder;
    use Illuminate\Database\Eloquent\Model;
    use Technote\SearchHelper\Models\Contracts\Searchable as SearchableContract;
    use Technote\SearchHelper\Models\Traits\Searchable;
    
    /**
     * Class Item
     * @mixin Eloquent
     */
    class Item extends Model implements SearchableContract
    {
        use Searchable;
    
        /**
         * @var array
         */
        protected $guarded = [
            'id',
        ];
    
        /**
         * @param  Builder  $query
         * @param  array  $conditions
         */
        protected static function setConditions(Builder $query, array $conditions)
        {
            if (! empty($conditions['s'])) {
                collect($conditions['s'])->each(function ($search) use ($query) {
                    $query->where(function ($builder) use ($search) {
                        /** @var Builder $builder */
                        $builder->where('items.name', 'like', "%{$search}%");
                    });
                });
            }
        }
    }
    
  3. Call search method.

    <?php
    use App\Models\Item;
    
    Item::search([
        's' => [
            'test',
        ],
        'ids' => [1, 2, 3],
    ])->get();
    

Author

GitHub (Technote)
Blog

Related Packages

mmanos/laravel-search

A search package for Laravel 5.

75,740 351
pmatseykanets/laravel-scout-postgres

PostgreSQL Full Text Search Driver for Laravel Scout

221,895 164
laravel/scout

Laravel Scout provides a driver based solution to searching your Eloquent models...

61,344,511 1,677
teamtnt/laravel-scout-tntsearch-driver

Driver for Laravel Scout search package based on https://github.com/teamtnt/tnts...

2,754,142 1,135
torann/laravel-hunt

Unified search for Laravel models using Elasticsearch.

375 4