在登录成功后显示用户名中的Cakephp问题

时间:2011-06-05 08:11:39

标签: cakephp cakephp-1.3

我尝试在登录成功时显示用户的用户名和角色

这是我在net.tusplus中的示例

class AccessComponent extends Object{
var $components = array('Acl', 'Auth');
var $user;

function startup(){
    $this->user = $this->Auth->user();
}

function check($aco, $action='*'){
    if(!empty($this->user) && $this->Acl->check('Group::'.$this->user['Group']['id'], $aco, $action)){
        return true;
    } else {
        return false;
    }
}

function checkHelper($aro, $aco, $action = "*"){
    App::import('Component', 'Acl');
    $acl = new AclComponent();
    return $acl->check($aro, $aco, $action);
}
}


class AccessHelper extends Helper {

var $helpers = array("Session");
var $Access;
var $Auth;
var $user;

function beforeRender() {
    App::import('Component', 'Access');
    $this->Access = new AccessComponent();

    App::import('Component', 'Auth');
    $this->Auth = new AuthComponent();
    $this->Auth->Session = $this->Session;

    $this->user = $this->Auth->user();
}

function check($aco, $action='*') {
    if (empty($this->user))
        return false;
    return $this->Access->checkHelper('Group::' . $this->user['Users']['id'], $aco, $action);
}

function isLoggedin() {
    return!empty($this->user);
}

我尝试在视图页面上显示状态

<div id="status">  
<?php
if ($access->isLoggedin()) {
    echo "Welcome";

    echo $this->Html->link('Sign Out', array('controller' => 'users', 'action' => 'logout'));
} else {
    echo $this->Html->link('Sign In', array('controller' => 'users', 'action' => 'login'));
    echo"</br>";
    echo $this->Html->link('Sign Up', array('controller' => 'users', 'action' => 'register'));
}
?>

如果我想显示群组名称和用户名。我该怎么办

1 个答案:

答案 0 :(得分:1)

您可以将在启动功能中设置的用户变量传递给视图并显示其中的信息。

<强>控制器

$this->set('authUser', $this->user);

查看

<div id="welcome">
    Welcome, <?php echo $authUser['User']['username'];?>
</div>