ニュース、イベント、リンクモデルに、最後の5つのレコードをフェッチするためのメソッドを作成します。次に、コントローラーでController :: usesプロパティにモデルを含めるか、アクションでClassRegistry :: init()を使用してモデルにアクセスします。
function my_action() {
$news = ClassRegistry::init('News')->getRecent();
$events = ClassRegistry::init('Event')->getRecent();
$links = ClassRegistry::init('Link')->getRecent();
$this->set(compact('news', 'events', 'links'));
}
その後、アプリケーションをDRYのままにして、任意のコントローラーアクションからこれらのモデルメソッドを呼び出すことができます。
my_action.ctpビュー、および実際に他の多くのビューで、要素をレンダリングするだけです。
// my_action.ctp
<?php
echo $this->element('recent_news');
echo $this->element('recent_events');
echo $this->element('recent_links');
?>
次に、要素は$ news(またはその他)変数を反復処理して、それぞれのコントローラーの「view」アクションへのリンクを含むアイテムを表示できます。
コントローラーがモデルと一致するからといって、そのコントローラーで他のモデルを使用できないという意味ではありません。