4

私は認証コンポーネントを使用していますが、問題なく動作します。しかし、コンテンツの前のデフォルトのレイアウトでは、ユーザーがログインしている場合とは異なるメニューがあります。したがって、ユーザーがログインしているかどうかを確認したいのですが、通常は$ this-> Auth-> user('id')を使用します。ただし、$ this-> Authはレイアウトでは機能しません(Authコンポーネントを使用しているコントローラーでのみ機能します)。

どうやってするの?

4

2 に答える 2

12

beforeRender()で呼び出すだけ

$this->set('userData', $this->Auth->user());

データをビューに設定し、ビューでチェックを行います。

レイアウトでデータを取得するにはbeforeRender()、AppControllerのメソッドを呼び出す必要があります。

セッションを通過させるのは良い考えではありません。これは通常のケースではないかもしれませんが、少なくとも私はしっかりしたことをしたいと思います。そのためにセッションを使用している場合、セッションを使用していないシステム(ステートレス認証)でコードが失敗します。全体として、私はビューでセッションにアクセスすることはまったく好きではありません。セッションは私にとってはデータソースのようなものです。

于 2012-05-08T08:55:25.793 に答える
6

セッションから認証データを読み取ることができます。何かのようなもの:

$user = $session->read('Auth'); 

AppControllerにセッションヘルパーを追加することを忘れないでください。

var $helpers = array('Session');
于 2012-05-08T09:14:03.880 に答える