minuo 发表于 2015-9-30 16:02:35

CI3.0中关于视图嵌套传值的问题,求指点

本帖最后由 minuo 于 2015-9-30 16:07 编辑

问题描述:
   1.我的视图结构:
----views/
-----------note/
----------------header.php
----------------index.php
----------------footer.php

   2.需求描述:我希望在控制器中仅使用$this->load->view('index', $data); 来实现视图变量的赋值。
   3.我的尝试:使用include(); require_once();可以实现,假如我想使用调用函数的形式来实现应该如何处理?
代码如下:
控制器note:


<?php
class Note extends CI_Controller{
      function index(){
          $data['title'] = 'Test Title';
          $data['body'] = 'Test Body';
          $this->load-view('index', $data);
      }
}
?>

(头部header.php)

<head>
    <title><?php echo $title;?></title>
</head>


(首页index.php)

<html>
<?php get_header(); //使用include(); require_once(); 来包含文件的话可以实现 ?>
<body>
    <p><?php echo $body;?></p>
</body>
</html>


假如我在helper文件夹下的Common_helper.php文件中有类似下面的这样一个函数,为什么头部模板中的$title无法正常获得值呢?

<?php
function get_header() {
    require_once( VIEWPATH . 'note/header.php');   
}
?>


使用这样的方法header.php中的$title无法获得传值。

minuo 发表于 2015-9-30 16:12:54

如果这样使用也是OK的,只是想试试其他的方法。

<html>
<?php $this->view->load('note/header.php') ?>
<body>
    <p><?php echo $body;?></p>
</body>
</html>

v阿杰 发表于 2015-9-30 17:36:59

本帖最后由 v阿杰 于 2015-9-30 17:49 编辑

核心文件中class CI_Loader有个属性:

      protected $_ci_view_paths =      array(VIEWPATH      => TRUE);



请自己扩展下核心类文件即可,(换肤功能)

minuo 发表于 2015-10-1 01:54:36

v阿杰 发表于 2015-9-30 17:36
核心文件中class CI_Loader有个属性:




感谢,CI小白一个,先看看。


页: [1]
查看完整版本: CI3.0中关于视图嵌套传值的问题,求指点