【问题标题】:CakePHP-3.0 multiple belongsTo associationsCakePHP-3.0 多个 belongsTo 关联
【发布时间】:2015-01-06 17:49:07
【问题描述】:

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

1。 Users 表与 Reasons
2. UsersReasons 都与 Images 表相关联(外键“image_id”)。

关联时在查找查询中起作用

“Reasons.Images”或“Reasons.Users.Images”

但不是两者都有!这是我的代码,它只返回“Reasons.Images”。

$this->Issues->findById($id)->contain([ 'Reasons.Images', 'Reasons.Users.Images' ]); 那么我如何获得两个表的图像关联或者我的方法应该不同吗?

【问题讨论】:

  • 我真的没有得到你的答案以及这如何解决任何问题。为什么您的问题回复有 reason_id 而这应该是 Issue hasMany Reason 关联?此外,顺序与您的问题相同,您刚刚添加了另一个容器(分别是容器配置)?除此之外,您问题中的查找对我来说效果很好,结果将包含与他们相关的图像和用户的原因,其中用户也包含他们的图像。
  • @ndm:可能是我的解释方式对你来说不清楚。我应该在之前发布我的错误回复。但基本上,对于我质疑的发现......当我得到'Users.Images'时我没有得到'Images'......这是我正在工作的主要协会的一部分。因此,当我弄清楚使用关联的正确方法时(就像我在回答中提到的那样),我能够按预期检索数据。所以我刚刚发布了我的答案。

标签: cakephp cakephp-3.0


【解决方案1】:

我设法解决了这个问题!以正确的顺序使用关联可以解决问题。
这是 Issues 表的主要响应。

大批 ( [id] => 2 [内容] => 这是个问题!! [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']);
}
]);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多