Session CakePHP:Can';无法登录用户';s使用身份验证和会话的组ID

Session CakePHP:Can';无法登录用户';s使用身份验证和会话的组ID,session,cakephp,authentication,cakephp-1.2,Session,Cakephp,Authentication,Cakephp 1.2,我是CakePHP的初学者,正在尝试构建我的第一个应用程序 我有以下登录代码: function login() { if ($this->Session->read('Auth.User')) { $result = $this->User->find('first', array( 'conditions' => array( 'User.id' => $this->A

我是CakePHP的初学者,正在尝试构建我的第一个应用程序

我有以下登录代码:

function login() {
    if ($this->Session->read('Auth.User')) {

        $result = $this->User->find('first', array(
            'conditions' => array(
                'User.id' => $this->Auth->user('id')
            ),
            'fields' => 'Group.id'
        ));
        $groupId = $result['Group']['id'];
        $this->Session->write('Auth.Group.id', $groupId);
        $this->Session->setFlash('You are logged in with Group ID ' . $groupId . '!', 'auth');
    }
}
如您所见,我正在设置
Auth.Group.id
会话变量以及
Auth flash

但是,在我的
app/views/layouts/default.ctp中

<?php echo $session->flash() ?>

您是否将调试级别设置为2?(在core.php中)

setFlash的第二个参数是用于呈现消息的元素的名称,在您的示例中为app/views/elements/auth.ctp。如果它丢失了,你什么也得不到是正常的

试试下面的方法

在控制器中:

$this->Session->setFlash('You are logged in with Group ID ' . $groupId . '!'); // notice 2nd param removed
在布局中:

<?php echo $session->flash() ?>

您是否在模型中使用可包含行为?不管怎样,你都应该试着根据下面的内容修改你的代码,看看会发生什么

function login() {
if ($this->Session->read('Auth.User')) {

    $result = $this->User->find('first', array(
        'conditions' => array(
            'User.id' => $this->Auth->user('id')
        ),
        'fields' => 'User.group_id' //CHANGE THIS
    ));
    $groupId = $result['User']['group_id']; //CHANGE THIS
    $this->Session->write('Auth.Group.id', $groupId);
    $this->Session->setFlash('You are logged in with Group ID ' . $groupId . '!', 'auth');
}
}


如果它显示一个数字,请告诉我,该数字应该是用户的组id。如果是这样的话,您可以使用Containable行为来获取组名,如果这正是您需要的。

仍然是nadda。用AppController编辑帖子,问题可能就在那里?
$this->Session->setFlash('You are logged in with Group ID ' . $groupId . '!'); // notice 2nd param removed
<?php echo $session->flash() ?>
function login() {
if ($this->Session->read('Auth.User')) {

    $result = $this->User->find('first', array(
        'conditions' => array(
            'User.id' => $this->Auth->user('id')
        ),
        'fields' => 'User.group_id' //CHANGE THIS
    ));
    $groupId = $result['User']['group_id']; //CHANGE THIS
    $this->Session->write('Auth.Group.id', $groupId);
    $this->Session->setFlash('You are logged in with Group ID ' . $groupId . '!', 'auth');
}