heseya/laravel-searchable
Heseya\Searchable
🔍 Search trait for Eloquent models.
Installation
$ composer require heseya/laravel-searchables
How to use it?
class User extends Model
{
use HasCriteria;
protected $criteria = [
'id', // default criterion
'email' => Equals::class,
'name' => Like::class,
'description' => Custom::class,
];
}
class Controller
{
function index(Request $request)
{
User::searchByCriteria([
'email' => 'example@example.com',
'name' => 'John'
])->get();
// you can extend query
User::searchByCriteria($request->all())
->where('public', true)
->get();
}
}
Available criteria
- Equals
- Like
Custom criterion
final class CustomCriterion extends Criterion
{
public function query(Builder $query): Builder
{
// do whatever you want
return $query;
}
}
Change default criterion in model
class User extends Model
{
protected function getDefaultCriterion(): string
{
return Equals::class;
}
}
Testing
To run the tests, run the following command from the project folder.
$ composer test
License
Package released under the MIT License. See the LICENSE file for details.
Related Packages
doctrine/dbal
Powerful PHP database abstraction layer (DBAL) with many features for database s...
648,266,899
9,701
laravel/serializable-closure
Laravel Serializable Closure provides an easy and secure way to serialize closur...
423,477,751
607
nunomaduro/collision
Cli error handling for console/command-line PHP applications.
403,217,078
4,664
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 2.0.0 | >=7.3 | >=7.0 | MIT | |
| 1.0.0 | >=7.3 | >=7.0 | MIT |