0

我有两张桌子

posts 
------
post_id | user_id | post_title | post_content

users
--------
id | user_name | user_ . .. . . . and so on 

我需要使用用户数据获取所有帖子以显示帖子作者等。

如何使用 CakePHP 查询来实现这一点?

4

2 回答 2

3

在您的 UserModel 中,您定义:

var $hasMany = 'Post';

在您的 PostModel 中,您定义:

var $belongsTo = 'User';

然后你可以得到一些用户的所有帖子:

$this->User->findAllById($id, array('recursive' => 2));

或者,您可以获得与相应用户相关的所有帖子:

$this->Post->find("all", array('recursive' => 2));

编辑: 您的帖子 id 列名为 post_id,因此您必须在 PostModel 中定义主键,因为 CakePHP 约定主键应命名为 id:

public $primaryKey = 'post_id';
于 2013-04-27T11:07:11.710 回答
2
$this->Post->find('all',array('fields'=>array('User.*'),'conditions'=>array('Post.user_id=User.id')),
        joins' => array(
            array(
                'alias' => 'User',
                'table' => 'users',
                'type' => 'Inner',
                'conditions' => array('User.user_id' =>$id)
            )
        )
 ));
于 2013-04-27T18:18:16.433 回答