Yii2 关联子查询 (模型查询)

发表于

YII2 模型查询 = 关联查询 + 模糊查询

控制器:
$searchModel = new SearchModel([
            'model' => $this->modelClass,
            'scenario' => 'default',
            'relations' => ['record' => ['cabinet_serial','original_battery_serial','new_battery_serial'],'record.user' => ['realname','mobile']], // 关联表(可以是Model里面的关联)
            'partialMatchAttributes' => ['record.cabinet_serial','record.original_battery_serial','record.new_battery_serial','record.user.realname','record.user.mobile'], // 模糊查询
            'defaultOrder' => [
                'id' => SORT_DESC
            ],
            'pageSize' => $this->pageSize
        ]);

这里面 relations 就是关联的模型

record 是 主表 关联的 record 表

record.user 是 record 表 关联的 user 表

模型:
主表中关联:

    /**
     * 获取订单信息
     * 2020-7-21 18:40:30 lmy
     * @return \yii\db\ActiveQuery
     */
    public function getRecord(){
        return $this->hasOne(MemberUsePowerRecord::class,['id'=>'record_id']);
    }

record表模型关联:


    /**
     * 获取骑手
     * 2020-6-17 11:36:42 lmy
     * @return \yii\db\ActiveQuery
     */
    public function getUser(){
        return $this->hasOne(\common\models\member\Member::class, ['id' => 'member_id']);
    }

视图:


'record.cabinet_serial',
                        'record.door_id',
                        [
                            'attribute'=>'record.user.realname',
                            'label'=>'骑手姓名',
                        ],
                        [
                            'attribute'=>'record.user.mobile',
                            'label'=>'骑手手机号',
                        ],
                        [
                            'attribute'=>'record.original_battery_serial',
                        ],
                        [
                            'attribute'=>'record.new_battery_serial',
                        ],


 

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注