从另一个控制器调用控制器功能

时间:2013-11-18 10:51:52

标签: php yii controller

我有2 controllers,我们称之为c1和c2。现在我想从c1中的函数调用c2中的函数,我们说actionC2

我尝试过这样的事情:
$c2_instance = new c2();
$c2_instance->actionC2();

但它不起作用。我收到此错误:Missing argument 1 for CController::__construct()
我做错了什么?

编辑:也许重要的是说它落在第一行

2 个答案:

答案 0 :(得分:3)

您不应该从另一个控制器调用控制器。您应该使用此

重定向
$this->redirect(array('controller/action'));

如果你没有其他方法, 重新考虑你的设计 解决 问题,请勿尝试 隐藏 。无论如何它会反击你。

答案 1 :(得分:0)

正如@ user488074所说,你的控制器必须有一个它在创建它的实例时正在寻找的参数。转到该控制器并查看contstruct函数中要查找的内容。如果您不想一直为该控制器传递参数,则将类似的内容添加到构造函数参数

public function foo($argument = NULL){
}

因此,如果您不想传递某些内容,则它具有默认值。