CodeIgniter, передает данные из модели в контроллер для использования в поле зрения

Я хочу передать данные, запрашиваемые в моей модели, на контроллер, для этого я использую return $ data. Тогда в контроллере использую $this->load->view('my_view', $data);

Из моего понимания var_dump($data); в представлении должны показать мне результаты запроса … Это не тот случай. Я получаю «неопределенные переменные данные» и 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>

2

Решение

Я думаю, что вы сделали 2 ошибки

  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();
}
1

Ты забыл это

 $data['resultSet']=$res;

Теперь получите доступ к результату как $ res в вашем коде

0

Просто нужно сделать изменения в контроллере

$data['query'] = $this->manage_accounts_model->get_users();

if($data){
$this->load->view('manage_accounts_view', $data);
}else{
echo "Fail";
}
0

Вы не прошли query ключевая переменная для просмотра.

менять:

$res = $this->manage_accounts_model->get_users();
if($res) {
$this->load->view('manage_accounts_view', $data);

Для того, чтобы:

$data['query'] = $this->manage_accounts_model->get_users();
if($data['query']){
$this->load->view('manage_accounts_view', $data);
...
0
По вопросам рекламы [email protected]