не удается вывести значение из базы данных в представлении в разделе codeigniter
Вот моя модель:
function get_name() {
$this->db->select('first_name');
$this->db->where('email', $this->session->userdata('email'));
$query = $this->db->get('users');
if($query->num_rows() == 1) {
return true;
}
}
И это мой метод контроллера:
function show_name() {
$this->load->model('users_model');
$this->users_model->get_name();
}
И метод, который передает имя для просмотра:
function profile(){
$data['first_name'] = $this->show_name();
$this->load->view('members/template', $data);
}
Я ничего не получаю в представлении, я проверил свой запрос, и он работает нормально. Есть ли что-нибудь, что я упускаю?
2 ответа:
Вам необходимо обновить код. Вам нужно вернуть
first_name
из функцииget_name
function get_name() { $this->db->select('first_name'); $this->db->where('email', $this->session->userdata('email')); $query = $this->db->get('users'); if($query->num_rows() == 1) { return $query->row()->first_name; } }
Вам также нужно
return
значение из функцииshow_name
function show_name() { $this->load->model('users_model'); return $this->users_model->get_name(); }
Измените код следующим образом Контроллер
function profile(){ $this->load->model('users_model'); $name = $this->users_model->get_name(); if ($name){ $data['first_name'] = $name; $this->load->view('members/template', $data); }else{ ehco "No User Exist"; exit; } }
Модель
function get_name() { $return =false; $this->db->select('first_name'); $this->db->where('email', $this->session->userdata('email')); $query = $this->db->get('users'); if($query->num_rows() == 1) { $return = $query->row()->first_name; } return $return ; }