1
我目前正在嘗試將使用用戶名字段的cakephp登錄名更改爲使用電子郵件字段。CakePHP更改身份驗證字段不起作用
當使用用戶名字段,登錄正常工作,這是一個有用戶名登錄的代碼:
login.ctp
<?php
echo $this->Form->create('User');
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->end(__('Login'));
?>
UsersController.php
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('add', 'login'); // Letting users register themselves
$this->Auth->fields = array('username' => 'username', 'password' => 'password');
}
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->Session->setFlash(__('worked'));
} else {
debug($this->data);
$this->Session->setFlash(__('Invalid username or password, try again'));
}
}
}
AppController的
public $components = array('Session', 'Auth');
所以這一切工作正常,我可以登錄測試的細節。
因此,要改變這使用電子郵件,所有我做的是:
變化從用戶名login.ctp輸入電子郵件
echo $this->Form->input('email');
變化領域的數組中用戶控制器從用戶名到電子郵件
$this->Auth->fields = array('username' => 'email', 'password' => 'password');
更改數據庫從用戶名E場以電子郵件
然後我嘗試使用相同的測試細節登錄,它告訴我,他們是不正確的。
有沒有人有任何想法,爲什麼這不起作用?
謝謝你,這已經讓我的神經一會兒! :) – Alex