因此,我编写了一个用于标记注释的标记功能,并且正在检查控制器以查看用户是否已经标记了特定注释。问题是,我认为这可以在模型中完成。使用模型而不是控制器来检查用户是否已经存在数据
功能是:
private function userAlreadyFlagged($userId, $commentId) {
$userAlreadyFlagged = $this->CommentsFlag->find('count', array(
'conditions' => array('CommentsFlag.comment_id' => $commentId, 'CommentsFlag.user_id' => $userId)
));
if ($userAlreadyFlagged > 0) {
return true;
} else {
return false;
}
}
然后我有另一个功能也被称为flagComment
if (!$this->userAlreadyFlagged($userId, $commentId)) {
if ($this->CommentsFlag->save($this->request->data)) {
$message = array('response' => 'success');
}
} else {
$message = array('response' => 'alreadyFlagged');
}
我对CommentsFlag电流模式控制器内我users
表链接到它:
var $name = 'CommentsFlag';
var $belongsTo = array(
'User' => array(
'className' => 'User'
)
);
所以我想知道我该如何开始做类似这样的东西,因为我有很多像这样的代码更适合模型。
它为什么是私人的?首先你的项目中的一个方法不应该是私有的(只有保护),因为它违背了框架的想法。其次你可能想在某一天从控制器访问它 - 所以公众也不会伤害它,可能是 – mark 2012-03-17 10:36:36
那么它只是从该控制器内部调用,这就是为什么我将它私有。不过,现在它已经转移到了模型和公共领域。 – 2012-03-18 09:29:36