我想将我模型中查询的数据传递给控制器,为此我使用return $ data。然后在控制器中我使用$this->load->view('my_view', $data);
根据我的理解,视图中的var_dump($data);
应该显示查询的结果......事实并非如此。我得到了未定义的可变数据"和var_dump($data);
中的NULL。
这是我的模特:
<?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>
答案 0 :(得分: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);
答案 1 :(得分:1)
原因$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();
}
答案 2 :(得分:0)
你忘记了
$data['resultSet']=$res;
现在以代码中的$ res访问结果
答案 3 :(得分: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);
...
答案 4 :(得分:0)
只需要改变控制器
$data['query'] = $this->manage_accounts_model->get_users();
if($data){
$this->load->view('manage_accounts_view', $data);
}else{
echo "Fail";
}