yii框架中如何让view不包含页头,页尾和菜单

Life is short , play more!
本文来自lihao's Blog,转载请注明。

使用renderPartial()函数

我们使用一个帮助action做一个例子。(action是controller中的一个函数)。当我们的请求是直接请求一个action,则打开的页面会包含默认的layout 展现, 包含一个网站的页头,页尾,还有菜单等。 当我们是通过ajax进行请求的时候,则只包含内容,没有包含页面布局layout。

示例:
public function actionHelp() {
if (Yii::app()->request->isAjaxRequest) {
$this->renderPartial(‘help’);
}
else {
$this->render(‘help’);
}
}

其实当一个页面,需要执行多个action(或多个controllers中的多个actions)时, 理想的mvc设计中,建议在页面通过ajax进行调用。 而不是在action中嵌套调用action。 因为action本身就是函数, 实际可以在action中调用action。 但非常不建议这么做。

public function actionIndex()
{
Yii::import(‘application.controllers.SiteController’);
$controller_instance = new SiteController(“AnotherController”);
$controller_instance->actionIndex();
}


发表评论

电子邮件地址不会被公开。 必填项已用*标注