典型应用为:
有个actionReport,输出某个报表,例如在StatController下,在该Controller中有beforeAction控制了访问权限,
而在另一个AdminController中,管理员可以查看任何报表,我们不想copy paste代码到Admin中,那么在Admin里可以直接调用StatController中的actionReport吗?
Admin和Stat平级,都继承自CController
典型应用为:
有个actionReport,输出某个报表,例如在StatController下,在该Controller中有beforeAction控制了访问权限,
而在另一个AdminController中,管理员可以查看任何报表,我们不想copy paste代码到Admin中,那么在Admin里可以直接调用StatController中的actionReport吗?
Admin和Stat平级,都继承自CController
你试试看 redirect(array(’/stat/report’))
显然不能redirect,需要在同一个request中
你想要的应该是 别的框架里面说的 forward。我也很奇怪为什么 yii不提供forward。难道有同类的东西存在?
你可以调用:Yii::app()->runController($route)
但是不推荐这种用法。你应该考虑提取出公用代码。
正解啊,以前用perl的框架Catalyst,已经有思维定式了,呵呵
#just forward:
$c->forward('controller/action');
#forward and then return:
$c->detach('controller/action');
qiang说的提取公用函数,我也考虑过,只是在其他框架中,action也是可以复用的公用函数,是个理念问题,要提取当然也是可以的。
用widget