现在的位置: 首页 > 编程开发 > Php > 编程开发 > 正文

CodeIgniter框架用render实现Layout布局和页面渲染

2015年10月16日 Php, 编程开发 ⁄ 共 638字 ⁄ 字号 暂无评论

由于在YII中用render来渲染页面很好用,在接触到ci后发现没有页面渲染和layout布局 然后就自己写了个用于渲染和布局的方法
没有布局太蛋疼,使用布局可以大大提高效率,如果每个文件都手工添加有太浪费时间和效率,回顾以前的项目记得曾经做过Yii的layout的设置,然后就搬到了CI上,具体见下面

首先定义全局的Controller,在项目的applcation/core目录下定义自己的Controller,不过要使用MY_开头也就是必须命名为:MY_Controller当然也可以自己 MY_ 是按照自己在配置里面设置的

在config.php中修改 $config['subclass_prefix'] = 'MY_'; 的内容为自己项目名称,网上也有很多把layout单独开发作为类库加载的,就是单独做了

Library下的文件Layout.php 不过需要在autoload中指定自动加载,可以根据自己爱好选择。。这里只介绍自定义全局控制器方法实现.

load->view($file, $viewData, TRUE);
            $data['layout'] = $layoutData;
            $this->load->view($this->layout, $data);
        } else {
            $this->load->view($this->layout, $viewData);
        }
        $viewData = array();
    }
}

其中css_files和js_files用来渲染js和css文件,这里还没有实现后续需要会逐步完善。
二、在layouts下建立 main_layout.php文件,内容如下


  
  <?php echo $layout['title'];?>





三、使用
在自定义controller中继承自MY_Controller,添加比如下面测试代码:

public function layout(){
    $data= array('user_name'=>'张三','password'=>'密码');
    $this->render('test',$data,array('title'=>'测试布局'));
}

这样视图会首先渲染test中的数据,然后把数据作为内容传递给父视图中。test.php代码如下

给我留言

您必须 [ 登录 ] 才能发表留言!

×