Codeigniter / REST, показывающий неверные результаты

Я пытаюсь создать сценарий входа в систему, используя CodeIgniter и REST Controller (https://github.com/philsturgeon/codeigniter-restclient) тем не мение; Я продолжаю получать нулевой ответ от моей модели

это моя модельная функция

public function login($data)
{
$checkEmail = $this->db->get_where('users', array('email' => $data['email']));

$emailRow = $checkEmail->row();

if(isset($emailRow)) {

if (password_verify($data['password'], $emailRow->password)) {

return $emailRow->id;

} else {

return false;

}

} else {

return false;

}
}

это мой контроллер

public function login_post()
{
$this->load->model('User_model');

$data = $this->_post_args;

if($this->form_validation->run() === FALSE) {

//does some unnecessary stuff thats pointless showing

$this->set_response([
'status' => FALSE,
'error' => $error
], REST_Controller::HTTP_BAD_REQUEST);

} else {

$login = $this->User_model->login($data);

if($login === TRUE) {

$user = $this->User_model->getUser($login);

$this->set_response([
'status' => TRUE,
'user' => $user
], REST_Controller::HTTP_ACCEPTED);

} else {

$this->set_response([
'status' => FALSE,
'error' => 'Nope'
], REST_Controller::HTTP_BAD_REQUEST);

}

}
}

каждый раз, когда я запускаю это, я получаю сообщение об ошибке «Нету» и $login возвращается как ноль, если я var_dump это? У кого-нибудь есть идеи?

0

Решение

В вашем контроллере вы проверяете:

if($login === TRUE) {

К сожалению, для вашего контроллера модель будет НИКОГДА вернуть TRUE так что ваш код попадает в ваш else{} блокировать каждый раз.

Ваша модель только возвращается FALSE или значение $emailRow->id

В качестве немедленного решения вы можете попробовать:

if($login !== FALSE) {
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector