Я борюсь с CakePHP, пытаясь создать базовую функциональность входа. Пока что CakePHP выигрывает. Я следил за базовым учебным пособием по блогам и основывался на том, что я пытаюсь создать similair login thingy.CakePHP - основная функция входа в систему не работает
Единственное различие, которое у меня есть, это то, что я не использую модель «Пользователи», а пользовательскую модель Employers, и я использую адрес электронной почты/пароль вместо имени пользователя/пароля.
Но все, что я получаю, это «Ваше имя пользователя или пароль были неверными».
AppController.php
App::uses('Controller', 'Controller');
class AppController extends Controller {
public $components = array(
'Session',
'Auth' => array(
'loginRedirect' => array(
'controller' => 'schedules',
'action' => 'index'
),
'logoutRedirect' => array(
'controller' => 'employers',
'action' => 'login',
'home'
),
'authenticate' => array(
'Form' => array(
'fields' => array(
'username' => 'email',
'password' => 'password'
),
'userModel' => 'Employer',
'passwordHasher' => 'Blowfish'
)
)
)
);
}
EmployersController.php
<?php
App::uses('AppController', 'Controller');
class EmployersController extends AppController {
public $helpers = array('Form');
public function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow('login');
}
public function login()
{
$layout = 'login';
$this->layout = $layout;
if($this->request->is('post'))
{
debug($this->Auth->login());
if($this->Auth->login())
{
return $this->redirect($this->Auth->redirect());
}
else
{
$this->Session->setFlash('Your username or password was incorrect.');
}
debug($this->request->data['Employers']['password']);
}
}
}
Login.ctp
<div id="login-container">
<h1>Login</h1>
<?php
echo $this->Form->create('Employers');
echo $this->Form->input('email', array('label' => false, 'placeholder' => 'Email'));
echo $this->Form->input('password', array('label' => false, 'placeholder' => 'Password'));
echo $this->Form->submit();
echo $this->Form->end();
?>
Когда я отлаживаю данные $ this-> request->, данные структурированы как данные [«Работодатели»] ['email'] & данные [«Работодатели»] ['password']. Это возможно не правильно, так как моя модель называется Employer.
Это правильно, и функция входа в систему ломается, и если да, то как я могу это исправить?
Или есть что-то еще, что я просматриваю.
Хм, это действительно сработало. Я думал, что мне нужно использовать имя контроллера, а не модель. Мой плохой, спасибо – DijkeMark
Нет проблем. благодаря –