我有以下表格,问题,用户,原因和图片。基本上问题有很多原因
我的目标是显示“原因”的附件图片。以及帖子的作者(用户)。
1. Users table associated with Reasons
2. Both Users and Reasons are associated with Images table (foreign key 'image_id').
在关联
时可以在查找查询中使用'Reasons.Images' or 'Reasons.Users.Images'
但不是两个!这是我的代码,仅返回' Reasons.Images'。
$this->Issues->findById($id)->contain([
'Reasons.Images',
'Reasons.Users.Images'
]);
那么我如何获得两个表的Image关联或我的方法应该是不同的?
答案 0 :(得分:4)
我设法解决了这个问题!!正确使用关联可以解决问题 这是问题表的主要回应。
Array ( [id] => 2 [content] => This is an issue!! [reason_id] => 3 [image_id] => 15 [user_id] => 21 )
要修复检索问题图像([image_id] => 15)以及用户的头像图像([user_id] => 21)的问题,我只是重新说明了关联(原因,图像和用户)与上述反应相反的顺序...
$this->Issues->findById($id)->contain([
'Reasons.Images',
'Reasons.Users.Images',
'Reasons.Users => function($t){
return $t
->select(['user_id','username','image_id']);
}
]);
这正如预期的那样完美!可能会在某些时候帮助别人!!谢谢!!