laravel-search-helper

Search helper for Laravel

MIT License

Downloads
5.5K
Stars
2
Committers
4

Laravel Search Helper

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

Laravel用検索ヘルパー

Packagist

Table of Contents

インストール

composer require technote/laravel-search-helper

使用方法

  1. Searchable ContractSearchable Trait を実装

  2. setConditions メソッド を実装

    <?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
         *
         * @return void
         */
        protected static function setConditions(Builder $query, array $conditions): void
        {
            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. searchメソッドを呼び出し

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

Author

GitHub (Technote) Blog

Package Rankings
Top 14.68% on Packagist.org
Badges
Extracted from project README
CI Status codecov CodeFactor License: MIT PHP: >=7.4
Related Projects