yii的controller中支持调用外部的action类(见《在controller中使用外部的action》)
但最近工作时碰到这样一个问题,外部action类如何渲染页面(render)呢? 假设有如下action类
<?php
class WorktimeAction extends CAction {
public function run(){
//数据处理
……
$this->render('worktime.php', $data);
}
}
目的很简单,就是处理数据后,想用得到的$data数据填充页面worktime.php
但是,上面的写法,肯定是错的,因为WorktimeAction没有render方法... 怎么办呢? 其实controller类中是有render方法的,所以问题转换为如何得到调用该action的controller类。
翻看手册,发现CAction 类有getController()方法! 于是~问题解决了,上代码。
<?php
class WorktimeAction extends CAction {
public function run(){
//数据处理
……
$this->getController()->render('worktime.php', $data);
}
}