sufian/laravel-query-filter

一个基于模型属性过滤查询的Laravel包。

v0.1.0 2024-06-07 03:15 UTC

This package is auto-updated.

Last update: 2024-09-08 07:19:43 UTC


README

一个基于模型属性过滤Eloquent查询的Laravel包。

安装

步骤 1: 安装包

您可以通过Composer安装此包

composer require sufian/laravel-query-filter

用法

步骤 1: 使用可过滤特性

将可过滤特性添加到您想要过滤的Eloquent模型中

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Sufian\QueryFilter\Filterable;

class User extends Model
{
    use Filterable;
}

步骤 2: 创建过滤类

要生成新的过滤类,请使用make:filter Artisan命令,后跟您要创建的类的名称。例如,要为User模型创建一个过滤类,请运行

php artisan make:filter YourModel Name

示例

php artisan make:filter User

或者,手动在每个模型的App\Filters命名空间中创建过滤类

示例 UserFilter 类

namespace App\Filters;

use Sufian\QueryFilter\BaseFilter;
use Illuminate\Database\Eloquent\Builder;

class UserFilter extends BaseFilter
{
    protected $filters = ['name', 'email'];

    public function name(Builder $query, $value)
    {
        $query->where('name', 'like', '%' . $value . '%');
    }

    public function email(Builder $query, $value)
    {
        $query->where('email', 'like', '%' . $value . '%');
    }
}

步骤 3: 在控制器中使用过滤

现在您可以在控制器中使用过滤方法

UserController

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index(Request $request)
    {
        $users = User::filter()->get();
        return response()->json($users);
    }
}

贡献

感谢您考虑为Laravel Query Filter包做出贡献!请阅读贡献指南以获取有关如何贡献的详细信息。

安全漏洞

如果您在此Laravel Query Filter包中发现安全漏洞,请发送电子邮件至sufian at rubel.nstu27@gmail.com。所有安全漏洞都将得到及时处理。

许可证

此包是开源软件,许可协议为MIT。