0

问候,

我正在尝试使用 CakePHP 中的可包含来删除从 find 调用返回的查询。

例如,我有 2 个模型,用户和帖子。用户有很多帖子。

现在,当我在 find 调用中使用可包含时,如下所示:

$User->id = 1;
$User->find('first', array(
    'fields' => array('id'),
    'contain' => array('Post')
))

它不会返回关联的 Post,而只会返回用户的 id。

但是,如果我试图以相反的方式获取数据,它会起作用。即这有效:

   $Post->find('first', array(
        'fields' => array('id', 'user_id'),
        'conditions' => array('Post.user_id' => 1),
        'contain' => array('User')
    ))

这不会:

   $Post->find('first', array(
        'fields' => array('id'),
        'conditions' => array('Post.user_id' => 1),
        'contain' => array('User')
    ))

然后,从返回的值中,我假设要使可包含项起作用,foreignKey 必须在字段中。

那么当用户的关联存储在 Post.user_id 中时,我如何能够在第一次调用时过滤掉用户字段?

任何帮助是极大的赞赏!谢谢。

-aw

4

1 回答 1

1

正如 larryb82 所说,您需要在两个方向上定义关系,以便从 User 模型中检索 Posts 数据

一个用户有很多帖子。帖子属于用户

CakePHP 文档示例

于 2009-10-02T10:47:48.813 回答