6

ですから、私がやりたいのは、メインレイアウトに、ログインしているユーザー用のメニューと、非ユーザー用のメニューを用意することです。

レイアウトはすべてのページで使用されるため、これを行う方法がわかりません。これまで見てきたように、Authコンポーネントはコントローラーでのみ使用できます。これは、1つだけで行う必要がある場合に便利です。ビューですが、すべてのビューについて、どうすればこれを行うことができますか?AppControllerで何かする必要がありますか?

私がやりたいのは基本的に

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

1 に答える 1

15

Auth コンポーネントを使用して、ビュー内のログイン ユーザーにアクセスすることもできます。マニュアルから:

ユーザーがログインすると、現在のユーザーに関する特定の情報が必要になることがよくあります。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; ?>
于 2012-09-16T03:32:54.767 に答える