認証済みのユーザIDを常に取得

認証中のユーザIDを確認して本人のみ項目表示など、割とあると思うので、app_controller.phpでview全体にセットしてみました。

余波で学んだこと

  • viewにセット済みの変数は、コントローラ中では $this->viewVars で一覧できる。


実装ソースの差分*1

Index: controllers/app_controller.php
===================================================================
--- controllers/app_controller.php      (revision 140)
+++ controllers/app_controller.php      (revision 142)
@@ -17,6 +17,20 @@

 class AppController extends Controller
 {
+
+       function beforeRender()
+       {
+               parent::beforeRender();
+
+               // 認証済みユーザIDのセット
+               $AuthUser = $this->MemberAuth->user();
+               if (!$AuthUser) {
+                       $this->set('uid', 0);
+               } else {
+                       $this->set('uid', $AuthUser[$this->MemberAuth->userModel]['id']);
+               }
+       }
+
 }

 // AppControllerを携帯とPCで振り分け

*1:前提条件:Authコンポーネントの替わりに独自のMemberAuthコンポーネントというのを使ってます。