matrozov/yii2-pro-active-query

动态可扩展的ActiveQuery类

dev-master 2023-01-23 20:10 UTC

This package is auto-updated.

Last update: 2024-09-23 23:54:27 UTC


README

本扩展提供了动态定制的ActiveQuery过滤器。

有关许可信息,请查看LICENSE文件。

安装

运行以下命令之一

$ php composer.phar require matrozov/yii2-pro-active-query

或将以下内容添加到你的composer.json文件的require部分:

"matrozov/yii2-pro-active-query": "@dev"

to the require section of your composer.json file.

用法

简单地将ProActiveQueryTrait特性添加到你的ActiveRecord类中,并指定ProActiveQuery的query函数,如下所示

class MyClass extends ActiveRecord
{
    use ProActiveQueryTrait;

    ...

    public static function queryMyFunc(ActiveQuery &$query)
    {
        $query->andWhere(['deleted_at' => null']);
    }
}

现在,你可以使用过滤器函数简单地对数据库进行选择

$items = MyClass::find()->myFunc()->all();

任何以query为前缀的任何参数的函数都可以从ActiveQuery中调用

    public static function queryStatusIs(ActiveQuery &$query, $status)
    {
        $query->andWhere(['status' => $status]);
    }
$items = MyClass::find()->statusIs('ready')->all();

你可以使用额外的特性在ActiveRecord类之间共享query函数。