find 之前批量加 where 条件 [ 2.0 版本 ]
问题:
我想在每个 find
查询条件之前,都加一个 and where project_id = 1
,我加了一个 behavior
,也进入到behavior
里面了,应该是属于 ActiveRecord
的哪一个呢,EVENT_AFTER_FIND
,也不太清楚要怎么加件..
public function events()
{
return [
Application::EVENT_BEFORE_REQUEST => 'handle'
];
}
public function handle()
{
Event::on(ActiveRecord::className(), ActiveRecord::EVENT_AFTER_FIND, [$this, 'afterFind']);
}
// 查询之前
public function afterFind($event){
// 这里可以批量加where条件吗
// p($event);
}
最佳答案
-
model 继承的
ActiveRecord
,ActiveRecord
类中有个方法叫find
:public static function find() { return Yii::createObject(ActiveQuery::className(), [get_called_class()]); }
写个类
testActiveQuery
继承ActiveQuery
类,model
重写find
方法。把ActiveQuery
换掉。testActiveQuery
重写 父类 init 方法。public function init() { //为所欲为 自己看下代码 $this->andOnCondition(['project_id' => 1]); parent::init(); }
共 1 条回复
其他 0 个回答
没有找到数据。
yoyo0926
注册时间:2016-04-20
最后登录:2022-04-01
在线时长:11小时46分
最后登录:2022-04-01
在线时长:11小时46分
- 粉丝1
- 金钱295
- 威望0
- 积分405