CodeIgniter,将数据从模型传递到控制器以在视图中使用
CodeIgniter, pass data from model to controller to use in view
我想将在我的模型中查询的数据传递给控制器,为此我使用 return $data。然后在控制器中我使用 $this->load->view('my_view', $data);
根据我的理解 var_dump($data);
中的视图应该向我显示查询的结果...事实并非如此。我从 var_dump($data);
.
得到 "undefined variable 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>
因为 $data
没有在你的控制器中定义 try
$data = array();
if($res){
$data['res'] = $res;
$this->load->view('manage_accounts_view', $data);
}
然后上镜
<?php var_dump($res); ?>
此外,您正在发送来自模型的整个查询,而不是您需要的 return 结果的结果,例如 :-
public function get_users(){
$query = $this->db->get('users');
return $query->result();
}
你忘记了
$data['resultSet']=$res;
现在在您的代码中以 $res 的形式访问结果
您没有将 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);
...
我认为你犯了 2 个错误
- 忘记将结果提取到数组中
- 忘记传数据给view
您的模型发生变化 class。
public function get_users(){
$data = array();
$query = $this->db->get('users');
$res = $query->result();
return $res;
}
更改您的控制器 class
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);
只需要更改为控制器
$data['query'] = $this->manage_accounts_model->get_users();
if($data){
$this->load->view('manage_accounts_view', $data);
}else{
echo "Fail";
}
我想将在我的模型中查询的数据传递给控制器,为此我使用 return $data。然后在控制器中我使用 $this->load->view('my_view', $data);
根据我的理解 var_dump($data);
中的视图应该向我显示查询的结果...事实并非如此。我从 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>
因为 $data
没有在你的控制器中定义 try
$data = array();
if($res){
$data['res'] = $res;
$this->load->view('manage_accounts_view', $data);
}
然后上镜
<?php var_dump($res); ?>
此外,您正在发送来自模型的整个查询,而不是您需要的 return 结果的结果,例如 :-
public function get_users(){
$query = $this->db->get('users');
return $query->result();
}
你忘记了
$data['resultSet']=$res;
现在在您的代码中以 $res 的形式访问结果
您没有将 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);
...
我认为你犯了 2 个错误
- 忘记将结果提取到数组中
- 忘记传数据给view
您的模型发生变化 class。
public function get_users(){
$data = array();
$query = $this->db->get('users');
$res = $query->result();
return $res;
}
更改您的控制器 class
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);
只需要更改为控制器
$data['query'] = $this->manage_accounts_model->get_users();
if($data){
$this->load->view('manage_accounts_view', $data);
}else{
echo "Fail";
}