CakePHP проверяет, вошел ли пользователь в вид - PullRequest
24 голосов
/ 05 мая 2011

У меня есть следующий код:

    <?php

    if (!$this->Auth->user())
    {
        echo $this->element('header');
    }
    else
    {
        echo $this->element('header-bar');
    }

    ?>

внутри моего представления, которое должно отображать другой заголовок для зарегистрированных пользователей, но выдает следующую ошибку:

Notice (8): Undefined property: View::$Auth [APP/views/layouts/page.ctp, line 17]
Fatal error: Call to a member function user() on a non-object in /Users/cameron/Sites/thehive/app/views/layouts/page.ctp on line 17

Как мне это исправить? Спасибо

Ответы [ 12 ]

0 голосов
/ 28 марта 2012
//In the views (or layout)
$session->check('Auth.User.id');

//In controller
$this->Auth->User('id'); 
0 голосов
/ 05 мая 2011

Вам необходимо установить пользовательские данные с контроллера, предпочтительно AppController, который наследуется всеми контроллерами на вашем сайте.Создайте / измените свой app_controller.php, чтобы он содержал этот beforeFilter(); метод.

<?php
class AppController extends Controller {

function beforeFilter() {
    $user = $this->Auth->user();
    $this->set(compact('user'));
}

Это установит переменную с именем $user в представления, которые будут пустыми, если пользователь не вошел в систему, или содержатих данные, если они есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...