尝试在yii控制器中调用不存在的函数时__call方法没有被执行?

时间:2012-10-12 05:20:48

标签: php yii

<?php
class ReportsController extends CController
{
    public function __call($name,$argument)
    {
        echo "test";
    }

}
?>

这是我的Yii控制器类,当调用index.php?r=reports/test URL时,它必须调用__call方法,因为测试方法不存在,但它会出现错误The system is unable to find the requested action test错误。

2 个答案:

答案 0 :(得分:3)

这取决于框架的实现。

例如,如果框架实现了如下代码:

If (!method_exists($controller, $action)) {
  throw new Exception("The system is unable to find the requested action $action");
}

答案 1 :(得分:3)

在您的控制器中实施missingAction方法,

如上所述@xdazz,它检查方法是否存在,如果不存在则调用missingAction方法。

//This method is invoked when the controller cannot find the requested action.

public function missingAction($actionID)
{
    // Your code here
}