cakephp: ошибка функции входа на форум - PullRequest
0 голосов
/ 04 января 2012

Я пытаюсь заставить работать функцию входа в плагин кекс-форума.

В users_controller.php,

поскольку переменная $ user в функции входа в систему не была заполнена, она выдала ошибки. Поэтому я изменил функцию входа в систему, как показано ниже:

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 Ответ

1 голос
/ 04 января 2012
$user=$this->User->find('all',array(
                    'condition'=>array( // here
                            'User.username'=>$username,
                            'User.password'=>$password
                            )));

У вас есть опечатка - она ​​должна быть conditions

Поскольку ключ недействителен, Cake не распознает его и просто игнорирует - поэтому возвращает all ваших пользователей.

...