Cakephp 2.5 AuthComponent在登录后为空

Cakephp 2.5 AuthComponent在登录后为空,cakephp,Cakephp,请原谅我的英语,我是法国人 嗯,我的登录函数返回TRUE,我已连接 但是当我检查变量$this->Auth->user时,结果是空的 为什么? //AppController.php public $components = array( 'Session', 'Auth' => array( 'authenticate' => array( 'Form' => array( 'field

请原谅我的英语,我是法国人

嗯,我的登录函数返回TRUE,我已连接

但是当我检查变量$this->Auth->user时,结果是空的

为什么?

//AppController.php

public $components = array(
    'Session',
    'Auth' => array(
         'authenticate' => array(
            'Form' => array(
                'fields' => array(
                    'username' => 'E-Mail',
                    'password' => 'MPDweb'
                )
            )
        ),  
        'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
        'logoutRedirect' => array('controller' => 'pages', 'action' => 'display',        'home')
    )
);
<?php echo $this->Session->flash('auth'); ?>
<?php echo $this->Form->create('User', array('action' => 'login')); ?>
<?php echo $this->Form->input('E-Mail', array('class' => 'form-control', 'autofocus' => 'autofocus')); ?>
<br />
<?php echo $this->Form->input('MPDweb', array('class' => 'form-control')); ?>
<br />
<?php echo $this->Form->button('Login', array('class' => 'btn btn-primary')); ?>
<?php echo $this->Form->end(); ?>
public function login(){
// var_dump($this->request->data);
if ($this->request->is('post')) {
    if($this->Auth->login()){
        $this->Session->setFlash('Vous êtes bien connecter');
        var_dump($this->Auth->login());
    } else {
        $this->Session->setFlash('Inentifiant ou mot de passe incorrect');
    }
    // debug($this->Auth->login());
}
}
 App::uses('AppModel', 'Model');
//App::uses('SimplePasswordHasher', 'Controller/Component/Auth');
class User extends AppModel {

    public $useTable = 'prospect';
    public $primaryKey = 'code_client';

}
//login.ctp

public $components = array(
    'Session',
    'Auth' => array(
         'authenticate' => array(
            'Form' => array(
                'fields' => array(
                    'username' => 'E-Mail',
                    'password' => 'MPDweb'
                )
            )
        ),  
        'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
        'logoutRedirect' => array('controller' => 'pages', 'action' => 'display',        'home')
    )
);
<?php echo $this->Session->flash('auth'); ?>
<?php echo $this->Form->create('User', array('action' => 'login')); ?>
<?php echo $this->Form->input('E-Mail', array('class' => 'form-control', 'autofocus' => 'autofocus')); ?>
<br />
<?php echo $this->Form->input('MPDweb', array('class' => 'form-control')); ?>
<br />
<?php echo $this->Form->button('Login', array('class' => 'btn btn-primary')); ?>
<?php echo $this->Form->end(); ?>
public function login(){
// var_dump($this->request->data);
if ($this->request->is('post')) {
    if($this->Auth->login()){
        $this->Session->setFlash('Vous êtes bien connecter');
        var_dump($this->Auth->login());
    } else {
        $this->Session->setFlash('Inentifiant ou mot de passe incorrect');
    }
    // debug($this->Auth->login());
}
}
 App::uses('AppModel', 'Model');
//App::uses('SimplePasswordHasher', 'Controller/Component/Auth');
class User extends AppModel {

    public $useTable = 'prospect';
    public $primaryKey = 'code_client';

}
//User.php

public $components = array(
    'Session',
    'Auth' => array(
         'authenticate' => array(
            'Form' => array(
                'fields' => array(
                    'username' => 'E-Mail',
                    'password' => 'MPDweb'
                )
            )
        ),  
        'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
        'logoutRedirect' => array('controller' => 'pages', 'action' => 'display',        'home')
    )
);
<?php echo $this->Session->flash('auth'); ?>
<?php echo $this->Form->create('User', array('action' => 'login')); ?>
<?php echo $this->Form->input('E-Mail', array('class' => 'form-control', 'autofocus' => 'autofocus')); ?>
<br />
<?php echo $this->Form->input('MPDweb', array('class' => 'form-control')); ?>
<br />
<?php echo $this->Form->button('Login', array('class' => 'btn btn-primary')); ?>
<?php echo $this->Form->end(); ?>
public function login(){
// var_dump($this->request->data);
if ($this->request->is('post')) {
    if($this->Auth->login()){
        $this->Session->setFlash('Vous êtes bien connecter');
        var_dump($this->Auth->login());
    } else {
        $this->Session->setFlash('Inentifiant ou mot de passe incorrect');
    }
    // debug($this->Auth->login());
}
}
 App::uses('AppModel', 'Model');
//App::uses('SimplePasswordHasher', 'Controller/Component/Auth');
class User extends AppModel {

    public $useTable = 'prospect';
    public $primaryKey = 'code_client';

}

注意:目前,我没有使用“hash”方法对密码进行编码。

var\u dump($this->Auth->login())应该是
var\u dump($this->Auth->user())
您的数据库字段是否命名为
E-Mail
MPDweb
?除非它是一个不能修改的遗留数据库,否则请遵循CakePHP的约定并使用带下划线的字段名。这是行不通的,因为默认情况下,Auth将使用SimplePasswordHasher并在与数据库中的值进行比较之前对登录表单中的密码进行哈希运算。太棒了!“应该是var_dump($this->Auth->user());”我处理现有数据库,无法更改字段的名称。我本想遵循Cakephp的惯例,但我不能。