$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这个问题应该是没法使用别名导致的,不知道大家有什么好的办法? 最佳答案