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