CakePHP: Cant do Simple Login

Я начинаю готовить торт ха-ха, каждый раз, когда я отправляю свою форму для аутентификации, ничего не происходит!

Это мой AppController

App::uses('AuthComponent', 'Controller/Component'); class AppController extends Controller { public $components = array( 'DebugKit.Toolbar', 'Session', 'Auth' => array( 'authenticate' => array( 'Form' => array( 'fields' => array( 'username' => 'email', 'password' => 'senha' ), ) ), 'loginRedirect' => array('controller' => 'users', 'action' => 'home'), 'logoutRedirect' => array('controller' => 'users', 'action' => 'logout'), 'authError' => 'Sorry, You Can not Access it!', 'loginError' => 'Login or Password incorrets!', 'autoRedirect' => false )); } 

Пользователь моей модели

 class User extends AppModel { public $name ="User"; public function beforeSave($options = array()){ if (isset($this->data[$this->alias]['senha'])){ $this->data[$this->alias]['senha'] = AuthComponent::password($this->data[$this->alias]['senha']); } return true; } } 

просто это, без валидности! Итак, мои пользователиКонтроллеры

  class UsersController extends AppController { public $name = "Users"; public function beforeFilter() { parent::beforeFilter(); $this->Auth->allow('adicionar'); } public function index(){ } public function home(){ $this->render('/home'); } public function login(){ if($this->request->is('post')){ debug($this->request->data); die(); if($this->Auth->login()){ $this->redirect($this->Auth->redirect()); }else{ $this->Session->setFlash(__('Mail or Password incorrets, Try again!')); } } } public function adicionar(){ if ($this->request->is('post')) { $this->User->create(); if ($this->User->save($this->request->data)) { $this->Session->setFlash(__('The user has been saved')); $this->redirect(array('action' => 'index')); } else { $this->Session->setFlash(__('The user could not be saved. Please, try again.')); } } } } 

как вы можете видеть, логин действия выполняет рендеринг вида Login, есть ли какие-либо проблемы?

И мой взгляд Войти для авторизации.

  <?php echo $this->Form->create('User',array('url' => array('controller' => 'users', 'action' => 'login'))); echo $this->Form->input('email'); echo $this->Form->input('senha'); echo $this->Form->submit('Login'); echo $this->Form->end(); ?> 

Где я ошибаюсь? Я не могу подтвердить подлинность.

Обновление ….

Как я сказал, отлаживаю свой проект, который я вижу! Мои данные запроса не пустые

введите описание изображения здесь

но я упал условно

введите описание изображения здесь

Данные запроса отладки

введите описание изображения здесь

Solutions Collecting From Web of "CakePHP: Cant do Simple Login"

// AppController

 App::uses('AuthComponent', 'Controller/Component'); class AppController extends Controller { /** * Components * * @var array */ public $components = array( 'Auth' => array( 'authenticate' => array( 'Form' => array( 'fields' => array( 'username' => 'email', 'password' => 'senha' ), ) ), 'loginRedirect' => array('controller' => 'users', 'action' => 'home'), 'logoutRedirect' => array('controller' => 'users', 'action' => 'logout'), 'authError' => 'Por favor, Faça o login para acessar a Área Restrita', 'loginError' => 'Login ou Senha incorreto!' 'autoRedirect' => false ); 

view – Вы должны установить имя модели User NOT Users в форме создания

 <?php echo $this->Form->create('User',array('url' => array('controller' => 'users', 'action' => 'login')); echo $this->Form->input('email'); echo $this->Form->input('senha'); echo $this->Form->end(); ?> 

// контроллер

 public function login() { if($this->request->is('post')) { if($this->Auth->login()) { $this->redirect($this->Auth->redirect()); }else { $this->Session->setFlash('Your username/password was incorrect'); } } } 

// добавьте это в свою модель пользователя

 App::uses('AppModel', 'Model'); /** * User Model */ class User extends AppModel { public function beforeSave($options = array()) { if (!empty($this->data['User']['password'])) { $this->data['User']['password'] = AuthComponent::password($this->data['User']['password']); } return true; } } 

вот простой логин Auth

Я думаю, ваша проблема здесь

 public function beforeFilter() { $this->Auth->fields = array( 'username' => 'email', 'password' => 'senha' ); } 

попробуй это

  public function beforeFilter() { $this->Auth->authenticate = array( 'Form' => array( 'fields' => array( 'username' => 'email', 'password' => 'senha' ) ) ) } 

* @@@ UPDATE @@@@ *

Ну, наконец, я получил решение … я так думаю …

Проблема в вашем представлении. Использовать это-

 <?php echo $this->Form->create('User',array('action'=>'login')); ?> <div class="input"> <div class="blockinput"> <i class="icon-envelope-alt"></i> <input type="mail" name="email" placeholder="Email"> <?php echo $this->Form->input('email', array('type' => 'email', 'placeholder' => 'Email', 'label' => false));?> </div> <div class="blockinput"> <i class="icon-unlock"></i> <?php echo $this->Form->input('senha', array('type' => 'password', 'placeholder' => 'Senha', 'label' => false));?> </div> </div> <button>Entrar</button> <?php echo $this->Form->end(); ?>