我在Cakephp中有以下模型:
class Post extends AppModel {
var $name = 'Post';
var $belongsTo = array(
"User" => array(
'className' => 'User',
'foreignKey' => 'user',
'fields'=>array('id', 'username', 'last_action', 'type', 'status', 'country')
),
);
var $hasOne = array(
"Follower" => array(
'className' => 'Follower',
'foreignKey' => false,
'fields'=>'target',
'conditions' => array('Follower.target = Post.user', 'Follower.user = 21')
),
);
}
此模型从数据库中获取帖子并包含基本用户信息。我的目标是在同一个查询中包含正在检索数据的用户是否跟随谁创建该帖子。
出于这个原因,我试图关联表关注者。但为了获得适当的结果,我应该提交用户ID,(在本例中为21)。问题是我不知道如何传递记录的用户ID变量。
有人知道该怎么做或者应该如何编写这个模型? 感谢
答案 0 :(得分:0)
删除Post模型中的$ hasOne代码。在执行find
之前,请立即使用bindModel
例如,可以在find
之前从Post模型中的方法调用(将21更改为登录用户的ID):
$this->bindModel(
array('hasOne'=>array(
'Follower' => array(
'className' => 'Follower',
'foreignKey' => false,
'fields'=>'target',
'conditions' => array(
'Follower.target' => 'Post.user',
'Follower.user' => '21')
)
))
);