yii外部action中如何渲染页面

2020-12-07 15:25:19 浏览数 (2)

yii的controller中支持调用外部的action类(见《在controller中使用外部的action》)

但最近工作时碰到这样一个问题,外部action类如何渲染页面(render)呢? 假设有如下action类

代码语言:javascript复制
<?php
class WorktimeAction extends CAction {
    public function run(){
        //数据处理
        ……
        $this->render('worktime.php', $data);
    }
}

目的很简单,就是处理数据后,想用得到的$data数据填充页面worktime.php

但是,上面的写法,肯定是错的,因为WorktimeAction没有render方法... 怎么办呢? 其实controller类中是有render方法的,所以问题转换为如何得到调用该action的controller类。

翻看手册,发现CAction 类有getController()方法! 于是~问题解决了,上代码。

代码语言:javascript复制
<?php
class WorktimeAction extends CAction {
    public function run(){
        //数据处理
        ……
        $this->getController()->render('worktime.php', $data);
    }
}

0 人点赞