これを行うにはどうすればいいのだろうかと思いました。 SubmissionsControllerがあり、その中には、各submissionの表示である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を呼び出すべきではありません。私の質問は、これを処理する最良の方法は何ですか?ユーザーが投稿を表示するたびにチェックする必要があるので、キャッシュする必要があるかどうかはわかりません。
複数のデータは、次に、フラグの状態通過この配列の配列を作成する場合は、渡された配列か、可能な値に
ベースを表示するために、1つのフラグ0または1を設定しこれに基づいてコントローラ
でこの状態を確認することができ
通常は設計上の誤りです。 これらのメソッドは、コントローラではなくモデルに配置する必要があります。 – mark
コントローラからそれらを参照するにはどうすればよいですか? 'var $ uses = 'SubmissionsFavorite''そして次に' $ this-> SubmissionsFavorite-> methodFromSubmissionsFavoriteModel(); '?> –
は決して使用しないでください:)代わりにClassRegistry :: init()またはloadModel()を使用してください。 PS:checkExistingFavorite()メソッドの詳細を知る必要があると答えるには – mark