matrozov / yii2-pro-active-query
动态可扩展的ActiveQuery类
dev-master
2023-01-23 20:10 UTC
Requires
- php: >=7.2
- yiisoft/yii2: ~2.0.14
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函数。