我有两张桌子
posts
------
post_id | user_id | post_title | post_content
和
users
--------
id | user_name | user_ . .. . . . and so on
我需要使用用户数据获取所有帖子 展示作家等。
如何使用CakePHP查询实现此目的?
答案 0 :(得分:3)
在您的UserModel中定义:
var $hasMany = 'Post';
在PostModel中定义:
var $belongsTo = 'User';
然后你可以得到一些用户的所有帖子:
$this->User->findAllById($id, array('recursive' => 2));
或者您可以获得与相应用户相关联的所有帖子:
$this->Post->find("all", array('recursive' => 2));
修改强> 您的Posts id列名为post_id,因此您必须在PostModel中定义主键,因为CakePHP约定是主键应该命名为id:
public $primaryKey = 'post_id';
答案 1 :(得分: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)
)
)
));