CakePHP 2.1 で電子メールを使用してログインできません。ユーザー名で試してみると、完全にうまく機能します。
以下はコードです
表示: login.ctp
<?php
echo $this->Form->create();
echo $this->Form->input('email');
//echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->end('Login');
?>
コントローラ: UsersController.php
<?php
public function login(){
if ($this->request->is('post')){
if ($this->Auth->login()){
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Invalid email and password'));
}
}
}
?>
モデル:User.php
<?php
App::uses('AuthComponent', 'Controller/Component');
class User extends AppModel {
public function beforeSave(){
if (isset($this->data[$this->alias]['password'])){
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
}
}
?>
データベース構造 : users テーブル
id Auto_Increment
username
email
password
role
ログイン用の電子メールIDを受け入れないのに、ユーザー名の場合はうまく機能する理由がわかりません。