>  기사  >  php教程  >  cakephp笔记view层

cakephp笔记view层

WBOY
WBOY원래의
2016-06-21 08:48:55830검색

一个view是一个页面模版,通常按action的名字命名。例如,PostsController::add的view位于/app/views/posts/add.ctp。Cake view是非常简单的PHP文件,因此你可以在其中使用任何PHP代码。

 

    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

 

renderElement('helpbox'); ?>  

调用一个element,并传入包含数据的数组

 

$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文件中。当然它们也可以帮助你重用站点中的内容区块。

 



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.