Yii2 hasOne,hasmany联表查询添加条件方法

1、yii2中的hasOne与hasMany方法非常好用,但是,在联查的过程中如果要加条件,那改怎么办呢?
你可能说,我可以直接在后面跟where呀,比如这样:

public function getCanWeiList(){
        $tableAlias = Table::tableName();
        $where['status'] = 1;
        return $this->hasOne(Table::className(),['tableid'=>'id'])->where($where);
    }

2、使用匿名函数来添加条件

Customer::find()->with([
    'orders' => function ($query) {
        $query->andWhere('status = 1');
    },
    'country',
])->all();

3、使用$model->canWeiList获取到关联表的所有数据,如果你想加where等条件的话,可以使用$query = $model->getCanWeiList(),这个得到的是一个ActiveQuery,你可以继续使用$query->where([‘xxx’=>’xxx’])的。