2016-12-23 1 views
0

TestController를 가지고 있습니다. 고유 한 모델이 없습니다. 나는 트렁크 모델 중에서 다양한 모델을 사용합니다. 트렁크 모델에서 "singlePckgCall"메서드를 사용하고자하는 "call"함수가 있습니다. 여기까지는 모든 일이 잘됩니다. "callSingleNumber"-함수가 다른 클래스의 메소드를 사용해야합니다.

TestController

내가 사용하려고 해요이 방법은 아래에 배치 다른 방법을 사용합니다.

enter image description here

그리고 그것을 중지하고 나에게 오류 페이지 보냅니다

알 수없는 방법 - YII의 \ 기본 \의 UnknownMethodException을

호출 알 수없는 방법 : 프론트 엔드 \ 컨트롤러 \ TestController : : callSingleNumber()

왜 내가 원하는지 모르겠다. Trunk Model 대신 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'을 사용하십시오. [후기 정적 바인딩] (http://php.net/manual/en/language.oop5.late-static-bindings.php)을 참조하십시오. – topher

관련 문제