Zend framework setNoRender

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很辛苦,博大精深,希望大家不要胆怯,勇敢去探索未知的世界。总有一天可以拿下它

相关文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值