2012-09-16 16 views
6

Entonces, lo que quiero hacer es, en mi diseño principal, tener un menú para los usuarios que inician sesión, y un diferente para los usuarios anónimos.Obtiene el usuario actual de Ver

El diseño se usará en cada página, así que no estoy seguro de cómo hacerlo, como he visto, el componente de autenticación solo se puede usar en el controlador, esto sería bueno si tuviera que hacer esto en una sola vista, pero para cada vista, ¿cómo puedo hacer esto? ¿Tengo que hacer algo en AppController?

Lo que quiero hacer es básicamente

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

Respuesta

15

Usted puede acceder el usuario conectado en su opinión utilizando el componente Auth también. Desde el manual:

Una vez que un usuario ha iniciado sesión, que a menudo se necesita un poco de información específica sobre el usuario actual. Puede acceder al usuario actualmente conectado usando AuthComponent :: user(). Este método es estático, y se puede usar globalmente después de que AuthComponent se haya cargado. Puede acceder a ella tanto como un método de instancia o como un método estático:

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

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

Usted debe ser capaz de hacer algo como:

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

Muchas gracias! Eso funcionó como un encanto. – gosukiwi

+0

¡De nada! – Hoff

+0

Supongo que esto ha sido desaprobado Tengo una excepción tratando de hacer esto en 5.2. Las soluciones con las que trabajé en 5.2 fueron compartir el usuario con la vista. – Grigio

Cuestiones relacionadas