Доступ к данным сеанса аутентификации (Lithium + MongoDB)

Итак, надеюсь, я правильно задаю этот вопрос:

Я настроил свою модель пользователя и контроллер, а также модель и контроллер сеанса... но я хочу отобразить часть информации о сеансе на странице.

например
Если бы я зашел на страницу, она бы читалась как "Брайан" (или любое другое имя пользователя, которое я использовал для входа)

Надеюсь, я не задаю повторяющийся вопрос - я довольно тщательно изучил этот вопрос и еще не нашел решения. Большое спасибо!


person briankulp    schedule 01.11.2011    source источник


Ответы (1)


Если ваш сеанс (установленный в файле конфигурации/загрузки) называется «по умолчанию», просто запустите check ...

$user = Auth::check('default');

Затем $user будет иметь массив пользовательских данных в сеансе, поэтому, если у вас есть поле first_name в вашей базе данных/сеансе, вы можете сделать:

echo $user["first_name"];

Я создал помощник, чтобы немного почистить это, я назвал его: extensions/helper/Login.php

<?php

namespace app\extensions\helper;
use lithium\security\Auth;

class Login extends \lithium\template\Helper {

    public function user() {

        $user = Auth::check('default');

        return $user;
    }

    public function fullName() {

        $user = self::user();

        return $user["first_name"] . " " . $user["last_name"];
    }

}

?>

Затем в своих представлениях я использовал это как...

<?=$this->login->fullName(); ?>
person Justin Jenkins    schedule 08.11.2011
comment
Как это будет выглядеть в контроллере? - person briankulp; 17.11.2011
comment
Это будет работать так же, как в приведенном выше примере, но вместо этого вы должны выполнить Auth:check() и $user[first_name] внутри контроллера. - person Justin Jenkins; 19.11.2011