cakephp笔记——view层
Layouts 布局
一个layout(布局)包含了所有包裹在view之外的表现代码。Layout文件都放在/app/views/layouts目录里。你可以重写一个默认的layout来取代位于/app/views/layouts/default.ctp的Cake默认layout。一但创建了新的默认layout,当页面render的时候controller view的内容会被替换到默认layout中。只要需要,你可以随意为你的Cake站点创建任意数量的layout,只要把他们放在app/views/layouts目录,并且在你的controller action里边使用controller的$layout变量或者setLayout()方法来切换layout。
Elements 元素
element元素的产生主要是为了代码或者是代码块的重用。许多应用程序都会有一些在各个页面见不停重复的表现层代码,有时他们只是在layout里的不同地方。Cake可以帮助你复制站点中的某些区块,如果需要的话。 我们将这些可重用的页面区块称为Element(元素)。广告,帮助框,导航栏,菜单和插图都被Cake实现成为element。一个element其实可以看作是可以包含在其他view里边的mini-view。所有element都生活在/app/views/elements目录下,并且文件扩展名为.ctp。
默认情况下,element访问不到任何数据。想让它具有对数据的访问权,你需要将数据放在数组里传递给它,并不要忘了为这些数据带上名字(键-值对数组)。
无参数地调用一个element
<?php echo $this->renderElement('helpbox'); ?>
调用一个element,并传入包含数据的数组
<?php echo
$this->renderElement('helpbox', array(
"helptext" => "Oh, this text is very helpful.")
);
?>
在element文件里,所有传入的变量都可以通过他们在参数数组里的键名来使用(有点类似于在view里边使用controller用set()设置的变量)。在上边这个例子中,/app/views/elements/helpbox.ctp文件可以使用$helptext变量。当然,如果传递一个数组给element会包含更多的信息。element使view具有更佳的可读性,而把render重复的element的部分放在对应的element文件中。当然它们也可以帮助你重用站点中的内容区块。
上一篇: JSP指令
推荐阅读
-
angularjs学习笔记之三大模块(modal,controller,view)
-
cakephp笔记——view层
-
TCP/IP笔记二.网络层(2)——ICMP,RIP,OSPF,BGP
-
jee6 学习笔记 4 - CRUD 2: View Details, Primefaces row selection
-
大三笔记(layui弹出层完成数据更改后重载表格)
-
WPF学习笔记 MVVM模式下,ViewModel如何关闭View
-
我的自定义View学习笔记(一)—— 绘制
-
PO是否应该上传到View层呢?问题的延续…… HibernateiBATISJDBCORM中间件
-
ASP.NET MVC 学习笔记-5.Controller与View的数据传递
-
04_计算机网络笔记-ARP协议-ICMP协议-路由-三层交换-TTL