Codeigniter:将数据传递给包含
Codeigniter: passing data to an include
我知道如何通过控制器中的数据数组将数据传递到页面视图,但我使用的模板独立于控制器加载导航视图,如下所示:
echo isset($nav) ? $this->load->view($nav) : '';
我想将动态数据传递给导航视图,但我不想通过控制器数据数组为每个页面单独加载它,这不会很枯燥。有没有办法通过模板中的代码传递它?
$this->load->view({template}, {vars});
{template} - 模板文件名
{vars} - 模板数组
示例:
$vars[[=24=]] = 'Hello World';
$this->load->view('test', $vars);
此代码从 application/views/test.php 加载模板并将使用 $title 变量。
在模板中使用以加载其他模板:
$this->view('other');
下一个解决方案:
型号:
class Model_Index extends CI_Model {
function __construct() {
parent::__construct();
}
function get_data() {
$sql = "...";
$query = $this->db->query($sql);
return ($query->num_rows()>0) ? $query->result() : false;
}
}
查看:
$this->ci =& get_instance();
$this->ci->load->model('model_index');
$data = $this->ci->model_index->get_data();
print_r($data);
感谢您对问题的优雅解决!
经过更多的思考,我想出了另一种不太全面的处理方法,即在控制器的开头声明 $data 变量,然后在构造函数中添加公共数据元素。然后,您可以在视图方法中将特殊视图数据元素添加到同一个数组,然后将整个批次发送到视图。这节省了在每个视图方法中添加公共数据元素,尽管它显然只适用于该控制器加载的视图。不过有用。
我知道如何通过控制器中的数据数组将数据传递到页面视图,但我使用的模板独立于控制器加载导航视图,如下所示:
echo isset($nav) ? $this->load->view($nav) : '';
我想将动态数据传递给导航视图,但我不想通过控制器数据数组为每个页面单独加载它,这不会很枯燥。有没有办法通过模板中的代码传递它?
$this->load->view({template}, {vars});
{template} - 模板文件名
{vars} - 模板数组
示例:
$vars[[=24=]] = 'Hello World';
$this->load->view('test', $vars);
此代码从 application/views/test.php 加载模板并将使用 $title 变量。
在模板中使用以加载其他模板:
$this->view('other');
下一个解决方案:
型号:
class Model_Index extends CI_Model {
function __construct() {
parent::__construct();
}
function get_data() {
$sql = "...";
$query = $this->db->query($sql);
return ($query->num_rows()>0) ? $query->result() : false;
}
}
查看:
$this->ci =& get_instance();
$this->ci->load->model('model_index');
$data = $this->ci->model_index->get_data();
print_r($data);
感谢您对问题的优雅解决!
经过更多的思考,我想出了另一种不太全面的处理方法,即在控制器的开头声明 $data 变量,然后在构造函数中添加公共数据元素。然后,您可以在视图方法中将特殊视图数据元素添加到同一个数组,然后将整个批次发送到视图。这节省了在每个视图方法中添加公共数据元素,尽管它显然只适用于该控制器加载的视图。不过有用。