CodeIgniter - проверка данных и получение «Попытка получить свойство необъекта» - PullRequest
1 голос
/ 26 марта 2011

Я пытаюсь проверить пин-код в базе данных по сравнению с тем, который введен пользователем, всякий раз, когда я запускаю его, я получаю ошибку «Попытка получить свойство для необъекта» ... Кажется, я не могу определить, куда я иду неправильно, может кто-нибудь, пожалуйста, помогите мне ... Это говорит об ошибке на выводе $ thepin = $ pins->; линия

Код, который я имею в моем контроллере, выглядит следующим образом:

function check_pin()
{
$pin = md5($this->input->post('oldpin'));
$email = $this->input->post('email');

$existingpin = $this->users->get_pin_by_email($email);
foreach($existingpin as $pins){
    $thepin = $pins->pin;
}

if($pin != $thepin){
    $this->form_validation->set_message('check_pin', 'The Old Pin Number does not match the existing one');
    return FALSE;
} else {
    return TRUE;
}
}

и следующий код в моей модели

function get_pin_by_email($emailaddress)
{
$this->db->where('LOWER(email)=', strtolower($emailaddress));
$query = $this->db->get($this->table_name);
if ($query->num_rows() == 1) return $query->row();
return NULL;
}

1 Ответ

0 голосов
/ 26 марта 2011

Код контроллера должен быть: -

function check_pin()
{
  $pin = md5($this->input->post('oldpin'));
  $email = $this->input->post('email');

  $existingpin = $this->users->get_pin_by_email($email);
  foreach($existingpin as $pins){
    // Check for the NULL return
    if ($pins != NULL && is_object($pins)) {
      $thepin = $pins->pin;
    }
  }

  if($pin != $thepin){
    $this->form_validation->set_message('check_pin', 'The Old Pin Number does not match the existing one');
    return FALSE;
  } else {
    return TRUE;
  }
}

Если вы внимательно посмотрите на код модели, вы обнаружите, что вы возвращаете два типа данных - один - Object, а другой - NULL,Поэтому в коде вашего контроллера вы также должны это проверить.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...