Zend framework setNoRender

来源:互联网 发布:java设计模式 csdn 编辑:程序博客网 时间:2024/06/06 12:29

Zend framework 捕获视图渲染结果(非直接echo)

<?php
class AccountController extends Zend_Controller_Action{
/**
* 视图渲染前置方法
*
*/
public function preDispatch(){
//禁止所有的方法自动渲染视图
$this->_helper->viewRenderer->setNoRender();
}
public function loginAction(){

//禁止本方法自动渲染视图
//$this->_helper->viewRenderer->setNoRender();
$layout = new Zend_Layout();
$layout -> setLayoutPath(APPLICATION_PATH."/views/layouts");
$layout->content=$this->view->render(/'account/login.phtml/');
$layout->setLayout(/'login/');
echo $layout->render();
}
}

关键在这里:

$this->view->render(/’path/to/test.phtml/’);

$this->view是 Zend_View的一个对象变量,

等价于:

$view = new Zend_View();
echo $view->render(/'test.php/');

如果没有禁用视图自动渲染,那么会多渲染一个视图,而且如果模版文件不存在,那么会报错,有时候我们要动态输出ajax或者其他内容,并不希望自动渲染视图,那么就需要关闭视图渲染助手的自动渲染,官方推荐的方法是

$this->_helper->viewRenderer->setNoRender();

意思是告诉视图渲染者(助手),这个方法就不必要自动渲染了。

禁用自动渲染视图之后,可以通过echo $this->render();或者echo $this->_helper->viewRenderer->render();来输出视图渲染。

推荐用echo $this->render();

学习zend framework很辛苦,博大精深,希望大家不要胆怯,勇敢去探索未知的世界。总有一天可以拿下它

相关文章

  • 2010年04月29日 -- Zend Framework Manual CHM Version 1.10.4 己更新 (2)
  • 2010年04月2日 -- Zend Framework 1.10.3 and 1.9.8 Released (0)
  • 2010年01月16日 -- Zend Framework 1.10即将发布 (0)
  • 2010年01月16日 -- Zend Framework 1.10.0Beta1 Released (0)
  • 2009年12月1日 -- Zend Framework值得深入 (4)
  • 2009年12月1日 -- Zend_Db_Adapter统计sql查询影响列数 (0)
  • 2009年11月24日 -- Zend Framework 1.9.6 Released (0)
  • 2009年11月20日 -- 危险的Cookie (0)
  • 2009年11月19日 -- 尽信书不如无书(ZendFramework手册里的瑕疵) (0)
  • 2009年11月19日 -- Zend Framework部署三级子域名 (0)
原创粉丝点击