【发布时间】:2013-01-22 02:00:52
【问题描述】:
所以我编写了一个标记 cmets 的标记功能,我正在检查我的控制器以查看用户是否已经标记了特定评论。问题是,我认为这可以在模型中完成。
函数是:
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'
)
);
所以我想知道如何从现在开始在模型中做这样的事情,因为我有很多这样的代码更适合模型。
【问题讨论】:
-
为什么是私有的?首先,您的项目中的方法永远不应该是私有的(仅受保护),因为它违背了框架的想法。其次,您可能希望有一天从控制器访问它 - 所以 public 也不会受到伤害,可能
-
嗯,它只是从该控制器内部调用,这就是我将其设为私有的原因。不过,它现在已移至模型并公开。
标签: php cakephp cakephp-2.0 cakephp-model