Я пытаюсь создать сценарий входа в систему, используя 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 это? У кого-нибудь есть идеи?
В вашем контроллере вы проверяете:
if($login === TRUE) {
К сожалению, для вашего контроллера модель будет НИКОГДА вернуть TRUE
так что ваш код попадает в ваш else{}
блокировать каждый раз.
Ваша модель только возвращается FALSE
или значение $emailRow->id
В качестве немедленного решения вы можете попробовать:
if($login !== FALSE) {
Других решений пока нет …