CakePHP2.x AppControllerでModelを呼び出しfind関数を使う方法

cake2-9-5-2

使用理由としては、app/View/Elements/header.ctpを用意しており、ヘッダー情報内にログインしたユーザー名、画像を表示するようにセット。
はじめは$this->Auth->user()を利用していたが、これではユーザー情報を編集したときにログアウトしないと情報が更新されないため、直接DBから情報を取得する流れに変えた。

これまではページ数が少なかったので、各コントローラに以下の記述を行っていた。

ChatsController.php

header.ctp

$user2にログインユーザーのidをセットし、find関数でユーザーIDを検索キーに情報を取得し$user_infoにセット。
ctpで表示という流れ。

ページ数が増えると、各コントローラにこの変数定義をそれぞれ行うのは非常に効率が悪いのでAppController.phpのbeforeFilterにセットすることに。

普通に同じように記述してもfindしたけどnullじゃね~!と言われ、var_dumpしても情報なし。
AppController.phpではModelとの接続をしていないらしく、以下の設定が必要とのこと。

今回はusersテーブルを見に行くので以下のように記述。

後は、AppController.php用に記述を少し変更

以上。

このエントリーをはてなブックマークに追加

にほんブログ村 IT技術ブログ IT技術メモへ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です