CakePHP-3.0多个belongsTo关联

时间:2015-01-06 17:49:07

标签: cakephp cakephp-3.0

我有以下表格,问题用户原因图片。基本上问题有很多原因 我的目标是显示“原因”的附件图片。以及帖子的作者(用户)。

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关联或我的方法应该是不同的?

1 个答案:

答案 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']);
}
]);

这正如预期的那样完美!可能会在某些时候帮助别人!!谢谢!!