2016-12-23 8 views
0

私はTestControllerを持っていますが、独自のモデルはありません。トランクモデルの中で、その中のいろいろなモデルを使っています。トランクモデルからメソッド "singlePckgCall"を使いたいという私の関数 "call"があります。それまではすべてが大丈夫です。 "callSingleNumber" -関数はそれとは異なるクラスのメソッドを使用します

TestController

私が使用しようとしている。この方法は、以下の配置別の方法を、使用しています。

enter image description here

そして、それは停止し、私のエラーページ送り:

不明方法 - のYii \ベースの\ UnknownMethodExceptionを

呼び出すと、未知の方法: フロントエンド\コントローラ\ TestController: :callSingleNumber()

私はなぜそれがcになりたいのかわかりません私がそれをしたいと思うように、トランクモデルの代わりにTestControllerのすべてのメソッド。結果として、別のクラスに存在するため、このメソッドは表示されません。私はもう一度手動でこの部分を書き直そうとしましたが、それは役に立たなかった。

答えて

2

singlePckgCallを静的に呼び出すと、singlePckgCallのメソッド$thisインスタンスが使用できません。行52

2)トランククラスのインスタンスを作成するに

$action_id_array[$key] = self::callSingleNumber($numery[$i], TRUE); 

ので、$が、これは次のとおりです。

あなたの問題を解決するには、

1)singlePckgCallで静的にcallSingleNumberを呼び出すことができます利用可能なのはsinglePckgCall

$instance = new Trunk(); 
$instance->singlePckgCall($numery); 
+0

'self'の代わりに' static'を使います。 [late static bindings](http://php.net/manual/en/language.oop5.late-static-bindings.php)を参照してください。 – topher

関連する問題