heseya/laravel-searchable

Eloquent 模型搜索特性

2.0.0 2022-03-14 10:36 UTC

This package is auto-updated.

Last update: 2024-09-14 16:34:45 UTC


README

Made by Heseya StyleCI Packagist Version Total Downloads Software License

🔍 Eloquent 模型搜索特性。

安装

$ composer require heseya/laravel-searchables

如何使用它?

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();
    }
}

可用条件

  • 等于
  • 类似

自定义条件

final class CustomCriterion extends Criterion
{
    public function query(Builder $query): Builder
    {
        // do whatever you want

        return $query;
    }
}

在模型中更改默认条件

class User extends Model
{
    protected function getDefaultCriterion(): string
    {
        return Equals::class;
    }
}

测试

要运行测试,请从项目文件夹运行以下命令。

$ composer test

许可证

该软件包在 MIT 许可证下发布。有关详细信息,请参阅LICENSE文件。