Codeigniter:将数据传递给include

时间:2015-03-02 21:32:34

标签: php codeigniter

我知道如何通过控制器中的数据阵列将数据传递到页面视图,但我使用的模板可以独立于控制器加载导航视图,如下所示:

echo isset($nav) ? $this->load->view($nav) : '';

我想将动态数据传递到导航视图,但我不希望通过控制器数据阵列为每个页面单独加载它,这不会非常干。有没有办法通过模板中的代码传递它?

3 个答案:

答案 0 :(得分:1)

下一个解决方案:

型号:

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);

答案 1 :(得分:0)

$this->load->view({template}, {vars});

{template} - 模板文件名
{vars} - 模板数组

样品:

$ vars [' title'] =' Hello World';
$ this-> load-> view(' test',$ vars);

此代码从application / views / test.php加载模板,并将使用$ title变量。

在模板中使用以加载其他模板:

$this->view('other');

答案 2 :(得分:0)

感谢这个问题的优雅解决方案!

经过更多的脑力破坏后,我想出了另一种处理它的方法,通过在Controller的开头声明$ data变量然后在构造函数中添加公共数据元素,以一种不太全面的方式处理它。然后,您可以将特殊视图数据元素添加到view方法中的同一个数组中,并将整个批次发送到视图。这节省了在每个视图方法中添加公共数据元素,尽管它显然只适用于该Controller加载的视图。虽然有用。