cakephp: ошибка функции входа на форум
Я пытаюсь заставить работать функцию входа плагина форумного кекса.
В users_controller.php,
поскольку переменная $user в функции login не была заполнена, она выдала ошибки. Поэтому я изменил функцию входа в систему, как показано ниже:
public function login() {
if (!empty($this->data)) {
$this->User->set($this->data);
$this->User->action = 'login';
//--------------code that i added--------------
$username=$this->data['User']['username'];
$password=$this->data['User']['password'];
$user=$this->User->find('all',array(
'condition'=>array(
'User.username'=>$username,
'User.password'=>$password
)));
print_r($user);
//------------------------------------------------------------------------
if ($this->User->validates()) {
if ($user == $this->Auth->user()) {
$this->User->login($user);
$this->Session->delete('Forum');
$this->redirect($this->Auth->loginRedirect);
}
else
echo('i\'m not auth user');
}
else
echo('not validated');
}
$this->Toolbar->pageTitle(__d('forum', 'Login', true));
}
print_r ($user) отображает всех пользователей из модели User. По праву он должен отображать только данные пользователя, который вошел в систему. Как мне этого добиться? Я не знаю, и это сводит меня с ума.
1 ответ
Решение
$user=$this->User->find('all',array(
'condition'=>array( // here
'User.username'=>$username,
'User.password'=>$password
)));
У вас есть опечатка - это должно быть conditions
Поскольку ключ недействителен, Cake не распознает его и просто игнорирует его - поэтому возвращает all
ваши пользователи.