나는 이것을하기위한 최선의 방법이 무엇인지 궁금해했다. SubmissionsController가 있고 그 안에는 각 제출에 대한 표시 인 view() 메소드가 있습니다. 모든 제출물에는 즐겨 찾기가 있으며 사용자는 해당 즐겨 찾기에 투표 할 수 있습니다. 사용자가 이전에 투표했는지 여부에 따라 아이콘을 변경하고 싶습니다. 나는 이런 식으로 생각했다 :보기 내에서 컨트롤러 메소드 호출하기 CakePHP
// checkExistingFavorite would be a boolean method which returns true if the user has already favorited it
<?= if (SubmissionsController::checkExistingFavorite($userId, $submissionId)) { ?>
<span style="favorited">Remove Favorite</span>
<? } else { ?>
<span style="not-favorited">Favorite</span>
<? } ?>
분명히, 나는 내보기 내에서 직접 SubmissionsController를 호출하면 안된다. 내 질문은 이것을 처리하는 가장 좋은 방법은 무엇입니까? 사용자가 제출물을 보러 갈 때마다 확인해야하므로 캐시해야할지 확실하지 않습니다.
여러 데이터가 다음 플래그 상태패스이 배열의 어레이를 만들 경우 전달 배열 또는 수 값
베이스를 참조, 하나 개의 플래그는 0 또는 1로 설정이에 기초하여 제어기
에서이 상태를 확인할 수
일반적으로 디자인 오류입니다. 컨트롤러에없는 메소드를 모델에 넣어야합니다. – mark
컨트롤러에서 어떻게 참조합니까? 'var $ uses = 'SubmissionsFavorite '' 그리고 나서'$ this-> SubmissionsFavorite-> methodFromSubmissionsFavoriteModel();'?> –
결코 사용하지 마십시오 :) 대신 ClassRegistry :: init() 또는 loadModel()을 사용하십시오. 추신 : 그 하나는 checkExistingFavorite() 메소드에 대해 더 많이 알아야 할 것입니다. – mark