phalcon框架的view分多级:全局-控制器视图-动作视图。视图由上到下,按层级嵌套。
默认全局视图为Views/index.html,所有的页面展示时,默认调用此页面,在这个页面中必须包含
echo $this->getContent()
语句,这个语句会读取views/layout/controllername.html,并把其内容嵌入在这句代码所在的位置。
控制器视图为views/layout/controllername.html,控制器视图为控制器的全局视图,默认当前控制器的所有页面都会调用此视图,控制器视图同样需要包含
echo $this->getContent()
语句,这个语句会读取views/controllername/actionname.phtml文件,并把action内容嵌入在这句代码所在的位置。
动作视图在views/controllername/actionname.phtml。每个action需要一个actionName.phtml页面。
在开发中通常会遇到一个页面需要单独处理,如并不需要全局或控制器视图,就需要单独处理,就会用到局部视图。
$this->partial("shared/ad_banner");
//other code
$this->partial("shared/footer");
注意:一旦使用了局部视图,全局、控制器、动作等视图会失效,如果想要继续使用,可以使用局部视图同样的方法进行引入。
在开发中,可能会从action中传递变量到view:
$this->view->setVar("var_name", $var_value);
在视图中可以直接使用$var_name访问传递过来的变量。
默认情况下,action会自动寻找同名的view文件。但在开发过程中,可能会遇到同一页面两种展示方式,如登录前、登录后、皮肤等,此时可以使用此方法输出其他视图。
$this->view->pick("other/someview");
更多有关视图内容,可参考官方文档。