我在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变量。
有人知道怎么做吗?或者这个模型应该怎么写?感谢
删除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')
)
))
);