用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1650|回复: 3
收起左侧

[版本 3.x] CI3.0中关于视图嵌套传值的问题,求指点

[复制链接]
发表于 2015-9-30 16:02:35 | 显示全部楼层 |阅读模式
本帖最后由 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复制代码
 
<?php
class Note extends CI_Controller{
      function index(){
          $data['title'] = 'Test Title';
          $data['body'] = 'Test Body';
          $this->load-view('index', $data);
      }
}
?>
 
复制代码

(头部header.php)
HTML复制代码
 
<head>
    <title><?php echo $title;?></title>
</head>
 
复制代码


(首页index.php)
HTML复制代码
 
<html>
<?php get_header(); //使用include(); require_once(); 来包含文件的话可以实现 ?>
<body>
    <p><?php echo $body;?></p>
</body>
</html>
 
复制代码


假如我在helper文件夹下的Common_helper.php文件中有类似下面的这样一个函数,为什么头部模板中的$title无法正常获得值呢?
PHP复制代码
 
<?php
function get_header() {
    require_once( VIEWPATH . 'note/header.php');    
}
?>
 
复制代码


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

 楼主| 发表于 2015-9-30 16:12:54 | 显示全部楼层
如果这样使用也是OK的,只是想试试其他的方法。
PHP复制代码
 
<html>
<?php $this->view->load('note/header.php') ?>
<body>
    <p><?php echo $body;?></p>
</body>
</html>
 
复制代码
发表于 2015-9-30 17:36:59 | 显示全部楼层
本帖最后由 v阿杰 于 2015-9-30 17:49 编辑

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

PHP复制代码
        protected $_ci_view_paths =        array(VIEWPATH        => TRUE);
 
复制代码



请自己扩展下核心类文件即可,(换肤功能)
 楼主| 发表于 2015-10-1 01:54:36 | 显示全部楼层
v阿杰 发表于 2015-9-30 17:36
核心文件中class CI_Loader有个属性:

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


本版积分规则