模型内with关联遇到的问题

浏览:1517 发布日期:2018/01/20 分类:求助交流 关键字: with belongsTo hasOne 关联模型 多次关联
$arr['data'] = $this->with(['assets','Assets.settings','staffs','departments'])
            ->field(['assets_transfer.id','assets_id','transfer_time','number','department_id','leader_id','address','approver_id','staff_id'])
            ->page($page,12)->select();
        if (!empty($arr['data'])) {
            $count = $this->with(['assets','Assets.settings','staffs','departments'])->count();
            $arr['pages'] = ceil($count/12);
            return $arr;
        }else{
            return false;
        }
public function assets () {
        $arr = $this->belongsTo('Assets','assets_id')->alias('assets')
            ->field('assets.id,setting_id,asset_number,original_value,use_status,period_depreciation,purchase_time,Assets.department_id,staff_id,address,s.real_name')
            ->join('staff s','s.id = Assets.staff_id')
            ->join('department d','d.id = Assets.department_id');
        return $arr;
    }
如上代码,with里面写了多个关联,但是assets关联里面还需要再次关联staff和department,不知道该如何去操作,如果像我现在这么写,会报id不知道取哪个,生成的SQL如下SELECT `assets`.`id`,`setting_id`,`asset_number`,`original_value`,`use_status`,`period_depreciation`,`purchase_time`,`Assets`.`department_id`,`staff_id`,`address`,`s`.`real_name` FROM `assets` `assets` INNER JOIN `staff` `s` ON `s`.`id`=`Assets`.`staff_id` INNER JOIN `department` `d` ON `d`.`id`=`Assets`.`department_id` WHERE ( `id` IN (1,2) ) AND `assets`.`delete_time` IS NULL这个问题应该是没法使用别名导致的,不知道大家有什么好的办法?
最佳答案
评论( 相关
后面还有条评论,点击查看>>