사용자가 제출을 볼 때마다, 나는 수를 추적하고 세션에 넥타이 :CakePHP로 조회수를 추적하기 위해 counterCache()를 어떻게 사용할 수 있습니까?
SubmissionsController :
// Count view
if ($this->Session->check('viewed_submission_' . $submissionId) !== true) {
$clientIp = ip2long($this->request->clientIp());
$this->SubmissionsViews->countView($submissionId, $clientIp);
$this->Session->write('viewed_submission_' . $submissionId, true);
}
가 나는 SubmissionsViews 테이블에 그들을 추적하고 있습니다.
SubmissionsViews 모델 :
class SubmissionsViews extends AppModel {
var $name = 'SubmissionsViews';
var $belongsTo = array(
'Submission' => array(
'className' => 'Submission'
)
);
public function countView($submissionId, $clientIp) {
$this->set('submission_id', $submissionId);
$this->set('user_ip', $clientIp);
$this->save($this->data);
}
}
내 SubmissionsView 테이블 submissions_views
에는 다음 필드가 있습니다
- ID를
해당 테이블에 추가 기능을 추적하기 위해 counterCache를 설정하려고하지만 설정 방법을 모르겠습니다.
class Submission extends AppModel { var $belongsTo = array( 'User' => array( 'className' => 'User' ), 'SubmissionsViews' => array( 'counterCache' => true ) );
을하지만 그것은
Submission.submissions_views_id
을 찾을 수없는 나에게 말하고 : 나는 현재 내 제출 모델 내에서 내$belongsTo
에 counterCache을 추가 해요. 문서에서 모든 것은 내가submissions
테이블에submissions_views_count
이라는 필드를 추가해야하므로이 작업을 수행하는 방법이 혼란 스럽습니다.
내 실수. 나는 그것을 고맙게 생각한다. 다시 돌아가서 명명 규칙을 다시 읽어야합니다. 고맙습니다. –