CodeIgniter, передавать данные с модели на контроллер для использования в поле зрения
Я хочу передать данные, запрошенные в моей модели, контроллеру, чтобы сделать это, я использую return $data. Затем в контроллере я использую $this->load->view('my_view', $data);
Из моего понимания var_dump($data);
в представлении должны показать мне результаты запроса... Это не тот случай. Я получаю "undefined переменные данные" и NULL из var_dump($data);
.
Вот моя модель:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Manage_accounts_model extends CI_Model {
public function index() {
//
}
public function get_users(){
$data = array();
$data['query'] = $this->db->get('users');
return $data['query'];
}
}
Вот мой контроллер
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Manage_accounts extends CI_Controller {
public function index() {
$this->load->view('template/header');
$this->load->model('manage_accounts_model');
$this->load->view('template/footer');
$this->load->model('manage_accounts_model');
$res = $this->manage_accounts_model->get_users();
if($res){
$this->load->view('manage_accounts_view', $data);
} else {
echo "Fail";
}
}
}
И, наконец, мое мнение:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
?>
<div class="container">
<h1><?php if($title){ echo $title; } ?></h1>
<?php var_dump($data['query']); ?>
</div>
Ответы
Ответ 1
Я думаю, вы допустили 2 ошибки
- забудьте получить результат в массив
- забудьте передать данные для просмотра
изменение в классе модели.
public function get_users(){
$data = array();
$query = $this->db->get('users');
$res = $query->result();
return $res;
}
изменение в классе контроллера
public function index() {
$this->load->view('template/header');
$this->load->model('manage_accounts_model');
$this->load->view('template/footer');
$this->load->model('manage_accounts_model');
$res = $this->manage_accounts_model->get_users();
if($res){
$data['result'] = $res;
$this->load->view('manage_accounts_view', $data);
} else {
echo "Fail";
}
в вашем представлении
print_r($result);
Ответ 2
причина $data
не определена в вашем контроллере.
$data = array();
if($res){
$data['res'] = $res;
$this->load->view('manage_accounts_view', $data);
}
Затем переходим к просмотру
<?php var_dump($res); ?>
Также вы отправляете весь запрос из модели не результат для возвращаемого результата, который вам нужен: -
public function get_users(){
$query = $this->db->get('users');
return $query->result();
}
Ответ 3
Вы забыли его
$data['resultSet']=$res;
Теперь получите доступ к результату в виде $res в коде
Ответ 4
Вы не передали ключевую переменную query
для просмотра.
изменения:
$res = $this->manage_accounts_model->get_users();
if($res) {
$this->load->view('manage_accounts_view', $data);
To:
$data['query'] = $this->manage_accounts_model->get_users();
if($data['query']){
$this->load->view('manage_accounts_view', $data);
...
Ответ 5
Просто нужно внести изменения в контроллер
$data['query'] = $this->manage_accounts_model->get_users();
if($data){
$this->load->view('manage_accounts_view', $data);
}else{
echo "Fail";
}