可以包含h​​asMany关系

时间:2009-09-30 10:47:45

标签: php cakephp contains

问候,

我正在尝试使用CakePHP中的containsable来查找从find调用返回的查询。

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

现在当我在find调用中使用包含这样的内容时:

$User->id = 1;
$User->find('first', array(
    'fields' => array('id'),
    'contain' => array('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

1 个答案:

答案 0 :(得分:1)

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

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

CakePHP Doc example

相关问题