CI将视图中的已接收变量数组传递给另一个视图

时间:2014-07-21 16:52:41

标签: php codeigniter templates

我目前正在从控制器加载我的页眉,页脚和内容视图,如下所示:

$data = array('first' => 1, 'second' => 2);
$this->load->view('header', $data);
$this->load->view('CRUD/reports', $data);
$this->load->view('footer', $data);

我如何通过" $data"数组到页眉和页脚的" CRUD / reports"查看所以我可以从控制器加载主内容视图,如下所示:

$this->load->view('CRUD/reports', $data);

4 个答案:

答案 0 :(得分:0)

我最终使用了变量$_ci_vars,该变量可用于我的方案中的CRUD / reports视图。然后从该视图加载页眉和页脚,如下所示:

$this->load->view('header', $_ci_vars);
$this->load->view('header', $_ci_vars);

答案 1 :(得分:0)

你总是可以在视图文件中加载页眉和页脚,或者你可以创建一个类似的函数:

function get_header($data, $return = false, $view = "header") {
    $ci = & get_instance();
    $ci->load->view($view, $data, $return);
}

然后在您的数据中创建一个 $ data->标头值并将它们传递给视图文件中的函数,如:

// View file
<?php get_header($header);?>
// Other content of the file

答案 2 :(得分:0)

您可以将其加载到“CRUD / reports”视图中,而不是在控制器中加载页眉和页脚,使用

$this->load->view('header');
//Your "CRUD/reports" content
$this->load->view('footer');

您可以在“data”数组中发送所有变量,如下所示

$this->data['variable1'] = 'values';
$this->data['variable2'] = 'values';

然后按如下方式加载视图

$this->load->view('CRUD/reports', $data);

答案 3 :(得分:0)

现在我使用PARSER

控制器

<?php
    $template = array(
        'title'=>'My invoices',
        'headerinc'=>load_css('data-tables/DT_bootstrap', 'plugins'),
        'footerinc'=>load_js('jquery.dataTables', 'plugins'), FALSE),
        'content'=>$CI->load->view("invoice/visualize", $data, TRUE)
    );

    $CI->parser->parse($CI->load->view['template'], $template); 
?>

主视图(查看template.php)

<html>
    <head>
        {headerinc}
    </head>
    <body>
        {content}

        <script src="js/jquery.js"></script>

        {footerinc}
    </body>
</html>

在此表单中,您的网站将始终保持相同的样式,仅更改内容=)