그래서 플래그를 지정하는 플래그 기능을 작성하고 사용자가 이미 특정 코멘트를 표시했는지 확인하기 위해 컨트롤러를 점검하고 있습니다. 문제는 모델에서이 작업을 수행 할 수 있다고 생각합니다.컨트롤러 대신 모델을 사용하여 사용자에 대한 데이터가 이미 존재하는지 확인합니다.
기능은 다음과 같습니다 그런
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;
}
}
나는 CommentsFlag 전류에 대한 flagComment
if (!$this->userAlreadyFlagged($userId, $commentId)) {
if ($this->CommentsFlag->save($this->request->data)) {
$message = array('response' => 'success');
}
} else {
$message = array('response' => 'alreadyFlagged');
}
내 모델이라는 컨트롤러 내에서 또 다른 함수가 내 users
테이블을 연결 한 :
var $name = 'CommentsFlag';
var $belongsTo = array(
'User' => array(
'className' => 'User'
)
);
내가 어떻게 시작할 수 있는지 궁금합니다. 지금부터는 모델에서 이와 같은 것들이 있습니다. 왜냐하면이 코드는 모델에 더 적합 할 것이기 때문입니다.
왜 비공개입니까? 첫째, 프레임 워크 아이디어에 어긋나지 않도록 프로젝트의 메소드를 개인용 (보호 된 경우에만)해서는 안됩니다. 두 번째로 언젠가 컨트롤러에서 액세스하려고 할 수도 있습니다. 대중도 아무런 상처를 입지 않을 것입니다. 아마도 – mark
그 컨트롤러 내에서만 호출되고 있었기 때문에 비공개로 만들었습니다. 이제 모델과 대중으로 옮겨졌습니다. –