technote / laravel-search-helper
Search helper for laravel
Package info
github.com/technote-space/laravel-search-helper
pkg:composer/technote/laravel-search-helper
Fund package maintenance!
v0.2.28
2022-07-13 15:09 UTC
Requires
- php: ^7.4|^8.0
- laravel/framework: *
Requires (Dev)
- codedungeon/phpunit-result-printer: ^0.32.0
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.2
- fakerphp/faker: ^1.19
- orchestra/testbench: ^6.24
- phpmd/phpmd: ^2.12
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2026-05-22 20:58:31 UTC
README
Read this in other languages: English, 日本語.
Search helper for Laravel.
Table of Contents
Install
composer require technote/laravel-search-helper
Usage
-
Implement
Searchable ContractandSearchable Trait. -
Implement
setConditionsmethod.<?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}%"); }); }); } } }
-
Call
searchmethod.<?php use App\Models\Item; Item::search([ 's' => [ 'test', ], 'ids' => [1, 2, 3], ])->get();