我有评论模型和视频模型,它们与belongsTo和hasMany的关系有关。我需要在控制器的评论(在一个行动)加载连接的视频,改变它的一个属性,然后保存评论和视频。我知道如何更改评论模式,但我不能以任何方式更改视频模式。
这是我的函数:
$this->Comment->id = $id;
if($this->Comment->exists()){
$this->loadModel('Comment');
$this->Comment->set('accepted', 1);
if($this->Comment->save()){
$this->Session->setFlash('Comment accepted');
//HOW TO CHANGE ATTR OF VIDEO
//in $this->Comment->video_id there is NULL
}
else
$this->Session->setFlash('Can't accept comment');
$this->redirect($this->request->referer());
}
else{
throw new NotFoundException(__('Invalid comment'));
}你们能帮我吗?
发布于 2013-10-09 05:59:23
两件事:
首先,你根本不需要调用它:
$this->loadModel('Comment');就在调用$this->loadModel('Comment');的代码行的上面,有一行代码是$this->Comment->id。$this->Comment是评论模型的一个实例。在Cake中,每个控制器都有其对应模型的一个实例,可通过$this->ModelName访问。
其次,您的评论模型将依次拥有视频模型的一个实例。因此,你的视频模型已经可以通过$this->Comment->Video上的评论控制器进行访问了
因此,要修改视频模型,首先必须获取评论的video_id,然后执行以下操作:
$this->Comment->Video->id = $videoId;
$this->Comment->Video->set('accepted', 1);
$this->Comment->Video->save()https://stackoverflow.com/questions/19257443
复制相似问题