jti / laravelfilter

0.1 2024-01-14 19:55 UTC

This package is auto-updated.

Last update: 2024-09-15 00:17:04 UTC


README

Latest Version on Packagist Total Downloads Build Status StyleCI

这里应该放置您的描述。请参阅contributing.md以查看待办事项列表。

安装

通过Composer

composer require jti/laravelfilter

使用方法

  1. 在模型中使用具有范围的特质
<?php

namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Filterable;
}


trait Filterable
{
    /**
     * @param Builder $builder
     * @param LaravelFilter $filter
     */
    public function scopeFilter(Builder $builder, LaravelFilter $filter): void
    {
        $filter->apply($builder);
    }
}
  1. 创建您的过滤器类
class UserFilter extends \JTI\LaravelFilter\LaravelFilter
{

    protected function initBuilder(\Illuminate\Database\Eloquent\Builder $builder): \Illuminate\Database\Eloquent\Builder
    {
        return $this->builder = $builder; // your model builder
    }

    // function name equal key name from array of params
    public function email($email = '')
    {
        if ($email) {
            $this->builder->where('email', '=', $name);
        }
    }
}
}
  1. 例如在控制器中使用过滤器
class BuilderController extends Controller
{
    public function index()
    {
        $filter = new UserFilter(['email' => 'example@gmail.com']);
        $users = \App\Models\User::query()->filter($filter)->get();
        
        return view('users', compact('users'));
    }

}

变更日志

请参阅changelog以获取最近更改的更多信息。

测试

composer test

贡献

请参阅contributing.md以获取详细信息及待办事项列表。

安全性

如果您发现任何安全相关的问题,请通过电子邮件发送至yuriy.kernytskyi@jointoit.com,而不是使用问题跟踪器。

鸣谢

许可证

MIT。有关更多信息,请参阅许可证文件