「雑記」カテゴリーアーカイブ

CakePHP3でのビューでのユーザー情報の表示

CakePHP 3で、ビューにどうやってAuth->Userの情報を表示させようか検討しました。

簡単なのは、
$this->request->getSession()->read(‘Auth.User.name’)
のようにセッション変数から取得することなのですが、コントローラーの制御から外れて、ビューが勝手に値を取得しているような気がしてモヤモヤしていました。

一方、
$this->Auth->user(‘name’)
のような書き方もビューでは出来ないし…

そこで、AppControler.phpのbeforeRenderで値をsetして、ビューから統一的に変数から取得することにしました。

具体的には、AppController.phpに下記のコードを追記します。

public function beforeRender(Event $event) {
       if ($this->Auth !== null) {
          $this->set(‘auth_user’, $this->Auth->user());
      } else {
          $this->set(‘auth_user’, null);
      }
}

また、エラー時に、ErrorControllerでAuthがない、と落ちてしまうので、ErrorController.phpのbeforeRenderにも追記します。

public function beforeRender(Event $event) {
    //エラーが発生した時にAuthがないnoticeが発生するためnullをセットする
   $this->Auth = null;
   parent::beforeRender($event);
}

これで、どのビューでも$auth_user->nameと統一的に扱うことが出来るようになりました。変なこだわりだな、とは思いましたが、スッキリしました。

CakePHP 3.7でのお話でした。

APple Watch SERIES 4

Apple Watch Series 4を購入しました!

初代Apple Watchは1年で交換するんじゃないかと思っていたのですが、不満もなかったので使い続けて来ましたが、watchOSの更新対象から外れ、そろそろいいかな、と思って購入することにしました。

初代Apple WatchとSeries 4の比較ですが、パッと見は代わりないですね。

ずっとスポーツバンドを使って来たのですが、今回、初めてスポーツループというバンドにしてみました。
これ、外した時に完全には分離しないので、充電用にスタンドが欲しくなりますね…