codeigniter 视图

2014年7月7日 15:23:05

ci的视图功能很棒,

比如一个网页有四个部分组成,对应4个文件:header.php, sider.php, maincontent.php, footer .php

不用PHP的include,可以

1 this->load->view(‘header.php‘);
2
3 this->load->view(‘sider.php‘);
4
5 this->load->view(‘maincontent.php‘);
6
7 this->load->view(‘footer.php‘);

这样的好处是: 如果header.php, sider.php, footer.php是经常要用到的, 而maincontent.php是根据每个controller/action的不同而改变的,

可以写一个方法集成并扩展 this->load->view,在扩展的内部自动执行第1,3,7行,而将maincontent.php这类的文件名当作参数传进来

这样就减少了重复include的代码

用了smarty再使用ci的view,才觉得"PHP是最好的模版语言"真是对的

使用smarty还是用原生的PHP做视图语言,还要看框架哪个方便

----------------------------

PHP真是个大融合的语言

如果PHP类class A 里没有成员变量$a,  那么在$objA = new A;生成的对象中直接$objA->a = 111; 对象$objA里就有了成员变量$a;

 1 <?php
 2
 3 class A
 4 {
 5     public $a = 123;
 6 }
 7
 8 $objA = new A;
 9
10 echo ‘<pre>‘;
11 echo "//对象成员变量<br>";
12 print_r(get_object_vars($objA));
13 echo "//类成员变量<br>";
14 print_r(get_class_vars(‘A‘));
15 $objA->b = 111;
16
17 echo "//对象成员变量<br>";
18 print_r(get_object_vars($objA));
19 echo "//类成员变量<br>";
20 print_r(get_class_vars(‘A‘));
21
22 var_dump($objA->b);exit;
 1 //对象成员变量
 2 Array
 3 (
 4     [a] => 123
 5 )
 6 //类成员变量
 7 Array
 8 (
 9     [a] => 123
10 )
11 //对象成员变量
12 Array
13 (
14     [a] => 123
15     [b] => 111
16 )
17 //类成员变量
18 Array
19 (
20     [a] => 123
21 )
22 int(111)

像是javascript的功能;

注意: 对象中有了这个自动添加的变量,但是类中是没有这个变量的,不可能,也不应该有

有了这个功能,我想能不能把用来给模版赋值的变量抽出来,

所有视图中的变量都从第三方对象读;

这个第三方对象里的模版变量由controller/action用上边PHP用法去添加

 1 <?php
 2
 3 class Controller extends SuperController
 4 {
 5
 6     public function __construct()
 7     {
 8         $this->objViewData = new ViewData;
 9     }
10
11     public function action()
12     {
13         $this->objViewData->a = 1234;
14         $this->load_view(‘view.php‘);
15     }
16
17 }
18 ?>
19
20 //view.php
21
22 <body>
23     <?= $objViewData->a ?>
24 </body>

当然这样写还是有点儿繁琐,等到实践的时候再优化优化(*^__^*)

codeigniter 视图,布布扣,bubuko.com

时间: 2024-08-13 12:17:39

codeigniter 视图的相关文章

CodeIgniter视图 &amp; 模型 &amp; 控制器

-------------------------------------------------------------------------------------------------------- 载入视图 $this->load->view('home/name'); //可以用子文件夹存储视图,默认视图文件以'.php'结尾 载入多个视图 $data['title'] = 'chenwei'; //给视图添加动态数据 $data['message'] = 'Your messa

codeigniter视图

怎么加载视图? 例如我们有一个视图在 application/views/welcome.php public function index() { $this->load->view('welcome'); } 视图可以在子目录中, 例如: application/views/html/welcome.php public function index() { $this->load->view('html/welcome); } 怎么向视图传递动态变量 我们目前有welcome

CodeIgniter 如何解决URL含有中文字符串

codeIgniter默认的配置下是不允许URL中包含非ASCII字符的,如果URL中含非ASCII字符,那么CI会毫不客气的抛出错误.本文章向码农介绍CodeIgniter 如何解决URL含有中文字符串. 你 可能会说,那我把这个URL使用函数urlencode一下呢?不行.因为Web Server会在接收到一个被urlencode的URL后自动将其decode,然后在PHP里得到的这些字符串转换成他原来所代表的含义,并使用 Web Server自己的URL编码字符集(IIS6 中文版是GBK

CodeIgniter框架的下载及安装

CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包.初次学习Php,网上搜了很多php框架,最后选择了CodeIgniter.下面向码农介绍CodeIgniter框架的下载及安装. 安装环境:php5+mysql6.5+iis7 我的电脑是用来办公写文档用的,win7系统,不想换系统,所以就安装了win7自带的iis7. php下载的是最新的php-5.3.28-nts-Win32-VC9-x86 mysql也是下载最新的. 下载地址: php:http://wi

Django Book

The Django Book 2.0--中文版 第一章:介绍Django 本书所讲的是Django:一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django,使你能够以最小的代价构建和维护高质量的Web应用. 从好的方面来看,Web 开发激动人心且富于创造性:从另一面来看,它却是份繁琐而令人生厌的工作. 通过减少重复的代码,Django 使你能够专注于 Web 应用上有 趣的关键性的东西. 为了达到这个目标,Django 提供了通用Web开发模式的高度抽象,提供了频繁进行的编程

CodeIgniter学习笔记(三)&mdash;&mdash;CI中的视图

控制器加载视图 CI通过控制器加载视图时,通过调用 $this->load->view('/user/index'); 视图文件名是index.php,此时,不需要添加文件后缀,文件路径是基于application/views目录的相对路径 视图文件可以是php原生代码,不需要HTML代码 控制器中可以加载多个视图,可以根据文档的结构从上至下依次加载视图 <?php echo "这是user视图"; ?>   控制器分配变量 两种方法: 一.单个变量 $this

CodeIgniter框架——CI中视图路径问题

答: 视图中的所有路径全部和 index.php 同级,也就是和 index.php 属于一个目录下,也就是网站根目录. 因为 index.php 后面看似是路径的东西其实那只是一种 URL 参数而已,并不是真正的路径. 建议在视图中使用 URL 辅助函数(URL Helper),CSS.图片等外部资源使用 base_url(),访问控制器方法使用 site_url(). 例如: 1 <img src="<?=base_url()?>images/xxx.gif" /

[CI] 使用CodeIgniter框架搭建RESTful API服务

在2011年8月的时候,我写了一篇博客<使用CodeIgniter框架搭建RESTful API服务>,介绍了RESTful的设计概念,以及使用CodeIgniter框架实现RESTful API的方法.转眼两年过去了,REST在这两年里有了很大的改进.我对于前一篇博客中的某些方面不是很满意,所以希望能利用这次机会写一个更加完善的版本.我的项目基于Phil Sturgeon的CodeIgniter REST Server,遵循他自己的DBAD协议.Phil的这个项目很棒,干净利落,简单实用,并

CodeIgniter框架——访问方式 URI 分配变量 数据库操作

1.访问方式: CodeIgniter 的访问URL使用的是pathinfo,入口文件/控制器/方法(/参数列表) eg:localhost/index.php/welcome/index/id 第一段表示调用控制器类. 第二段表示调用类中的函数或方法. 第三及更多的段表示的是传递给控制器的参数,如 ID 或其它各种变量. 2.URI参数获取: 控制器端代码 1 public function getUri($id,$name,$year) 2 { 3 echo "id--->"