Я работаю над cakephp 2.x. моя проблема в том, что я не хочу использовать имя пользователя для ведения журнала. Я беру адрес электронной почты и пароль от пользователя и проверяю это письмо и пароль из базы данных. У меня есть таблица в моей базе данных пользователь и имеет 3 поля идентификатор, электронной и парольИспользование электронной почты вместо имени пользователя в CakePHP Auth Component
вот мой код
Модель
<?php
class User extends AppModel {
public $useTable = 'user';
}
?>
AppController
class AppController extends Controller {
public $components = array(
'Session',
'Auth'=>array(
'loginRedirect'=>array('controller'=>'users', 'action'=>'admin'),
'logoutRedirect'=>array('controller'=>'users', 'action'=>'admin'),
'authError'=>"You can't access that page",
'authorize'=>array('Controller')
)
);
public function isAuthorized($user) {
}
public function beforeFilter() {
$this->Auth->allow('index');
UserController
public function login()
{
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash('Your email/password combination was incorrect');
}
}
}
login.ctp
<?php
echo $this->form->create();
echo $this->form->input('email');
echo $this->form->input('password');
echo $this->form->end('Authenticate');
?>
извините 2 спросите этот глупый вопрос .. где я должен добавить свой код? или, пожалуйста, если вы можете настроить код в моем коде, чтобы я мог сразу запустить его и сообщить вам о выходе – hellojohn
Это просто новая запись с ключом 'authenticate' в массиве' Auth', который у вас уже есть в вашем 'AppController'. – dhofstet
Мне нужно изменить имя поля в login.ctp от email до 'username'? – hellojohn