krenor/eloquent-filter

轻松过滤Laravel Eloquent查询!

1.0.0 2015-09-09 08:56 UTC

This package is auto-updated.

Last update: 2024-09-19 09:18:52 UTC


README

Latest Stable Version License

eloquent-filter

简单易用,使用输入对Laravel 5.1的Eloquent查询进行过滤!

安装

步骤1:通过Composer安装

将以下内容添加到您的根目录的composer.json中,并使用composer installcomposer update进行安装

{
  "require": {
    "krenor/eloquent-filter": "~1.0.0"
  }
}

或使用控制台中的composer require krenor/eloquent-filter

步骤2:导入特性

在您想要监听输入并自动通过该输入进行过滤的模型中,只需使用并添加特性即可。
用法

namespace App\Http\Models;

use Illuminate\Database\Eloquent\Model;
use Krenor\EloquentFilter\FilterableTrait;

class Order extends Model
{
	use FilterableTrait;

    ...
}

在模型中使用特性添加protected $filterable = []

列名称

  1. 对应URL中的列名并按此进行过滤。

    • URL: /some_orders/all?status_id=2
      protected $filterable = [ 'status_id' ]
      别名
  2. 使用一个列别名代替友好的名称

    1. URL: /some_orders/all?status=2
      protected $filterable = [ 'status_id' => 'status' ]
      为列别名添加值别名

    2. URL: /some_orders/all?status=processing
      现在每次您运行类似Order::with('relation1')->paginate()的查询时

    protected $filterable = [
        // column name => column alias
        'status_id' => ['status' => [
            // value aliases in database => input value
            1 => 'pending',
            2 => 'processing',
            3 => 'completed'
        ]
    ]

过滤将自动应用并检查URL中的输入。
注意,此包目前仅支持等号操作符进行查询过滤。
贡献

如果您认为您发现了一个问题,请使用GitHub问题跟踪器报告,

或者更好的是,Fork存储库并提交一个拉取请求
许可

eloquent-filter在MIT许可的条款下分发

https://github.com/krenor/ldap-auth/blob/master/LICENSE.md