【问题标题】:How to retrieve data from two related tables using cakephp?如何使用 cakephp 从两个相关表中检索数据?
【发布时间】:2015-10-01 16:32:35
【问题描述】:

我在数据库中有两张表,一张为 event(eventID,name,location),另一张为 eventImages(id,eventID,path)。

我需要获取与每个事件相关的图像

我在 CakePHP 中尝试过以下语句:

<?php
   App::uses('AppModel','Model');
   class EventImages extends AppModel {
      public $belongsTo = array('Event' => array('className' => 'Event','foreignKey' => 'eventID'));
 }

但在控制器中没有检索到任何数据,是否缺少任何语句?

【问题讨论】:

  • 问题中没有查询。 no data is retrieved - 通过什么查找电话?它生成什么sql,结果是什么?问题中的代码有帮助,但不能解释您当前正在做什么或正在看到的内容。
  • @AD7six 我有 2 个表首先是事件表,每个事件都有保存在 eventImages 表中的图像,我想在事件控制器中检索与每个事件相关的图像
  • 这很好,但没有解决我的评论中的任何问题,或者添加任何尚未出现在问题中的内容。
  • @AD7six 真的忘了它
  • 我假设有些事情不清楚。我要求:1)find call 2)查询(即 sql)- 使用debug kit 很容易做到 3)您的 find 调用的实际返回值。对读者来说重要的是你在做什么,而不是你认为可能相关的代码。在您将这些内容添加到问题之前 - 通过编辑 - 大多数读者可以做的就是猜测您在做什么,因此问题是什么,没有人应该猜测任何事情。

标签: php cakephp


【解决方案1】:

你必须在事件模型中定义关系

 public $hasMany = array('EventImages'=>array('className'=> 'EventImages', 'foreignKey'=>'eventID') //for multiple image

根据 cakephp 中的命名约定,模型名称应该是单数。此外,您还必须在 Event 模型中将 public $primarykey = 'eventID' 定义为 cakephp,默认使用 id 字段作为主键。

【讨论】:

    猜你喜欢
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 2013-06-20
    相关资源
    最近更新 更多