2012-09-16 10 views
6

私の主なレイアウトでは、ログインしたユーザー用のメニューとanonユーザー用のメニューがあります。現在のユーザーを表示から見る

すべてのページでレイアウトが使用されるので、これを行う方法がわかりません。私が見たように、認証コンポーネントはコントローラでのみ使用できます。これは1つのビューでのみ表示されますが、すべてのビューでどのようにこれを行うことができますか?私はAppControllerで何かする必要がありますか?私が何をしたいか

// layout 
<?php if(logged): ?> 
Welcome <?php echo $user; ?> 
<?php else: ?> 
Welcom anon, Log in? 
<?php endif; ?> 

答えて

15

はあなたにもAuthコンポーネントを使用して、ビュー内のユーザーでログインしてアクセスすることができ、基本的です。 manualから:ユーザーがログインしている

たら、あなたは多くの場合、現在のユーザーに関するいくつかの特定の 情報が必要になります。 AuthComponent :: user()を使用して、現在ログインしているユーザ にアクセスできます。このメソッドは静的で、AuthComponentがロードされた後に をグローバルに使用できます。あなたはそれが両方のインスタンスメソッドとして、または静的メソッドとして アクセスを行うことができます

// Use anywhere 
AuthComponent::user('id') 

// From inside a controller 
$this->Auth->user('id'); 

あなたが好きな何かを行うことができるはず:

// layout 
<?php if(AuthComponent::user('name')): ?> 
    Welcome <?php echo AuthComponent::user('name'); ?> 
<?php else: ?> 
    Welcom anon, Log in? 
<?php endif; ?> 
+0

どうもありがとう!それは魅力のように働いた。 – gosukiwi

+0

あなたは大歓迎です! – Hoff

+0

私はこれが非難されていると思いますか?私は5.2でこれをしようとしている例外があります。私が5.2で行った解決策は、ユーザーをビューと共有することでした。 – Grigio

関連する問題