別のCakePHPコントローラーからのメソッドへのアクセス、またはより良い代替手段!

StackOverflow https://stackoverflow.com/questions/1600796

質問

スタックオーバーフローがバッジを使用するのとほぼ同じ方法で、コミュニティの盗用を促進するために、私のウェブサイト用の「賞」システムを作成しています。

サイトはCakePHPで構築され、アワードモデル、コントローラーなどを作成しました-現在、ユーザーがアワードを持っているかどうかを計算する方法はアワードコントローラーに含まれています。

ただし、賞を更新する最良の方法を決定することはできません-たとえば、一定数のコメントを入力して賞を受賞すると、CRONでは十分ではなく、そうしないとユーザーが期待するプロファイルにアクセスする可能性がありますCRONが実行されるまでアワードはありません。

requestAction()を使用してメソッドを呼び出してアワードコントローラーのアワードを更新することを考えていましたが、これは実際にはMVCデザインパターンに適合せず、より良い方法が必要だと考えました!

役に立ちましたか?

解決

賞を獲得する唯一の方法がコメントを作成することである場合、Model :: saveをオーバーライドして、追加される新しいコメントかどうかを判断します。そうである場合、アワードモデルを呼び出してアワードを更新します。

賞を与えることができるアクションが複数ある場合は、各モデルをタップしてこのチェックを実行するか、AppModelを変更して、すべての保存がcheckNewAwards()...の呼び出しになるようにすることができます。

または質問を理解していない可能性がありますか?

他のヒント

ヘルパーで関数を作成し、レイアウトに配置して、レイアウトがレンダリングされるたびに実行されるようにします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top