5
<?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エラーが発生します。

4

2 に答える 2

3

これは、フレームワークの実装によって異なります。

たとえば、フレームワークが次のようなコードを実装している場合:

If (!method_exists($controller, $action)) {
  throw new Exception("The system is unable to find the requested action $action");
}
于 2012-10-12T05:29:11.177 に答える
3

missingActionコントローラーにメソッドを実装し、

@xdazzが言ったように、メソッドが存在するかどうかをチェックし、そうでない場合はmissingActionメソッドを呼び出します。

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

public function missingAction($actionID)
{
    // Your code here
}
于 2012-10-12T05:39:26.443 に答える