2016-08-25 3 views
2

yii2 basic.actually로 알고 싶습니다. 동일한 컨트롤러의 동작에서 공통 기능을 호출하는 방법을 알고 싶습니다. 제가 메일을 보내기위한 조치 A에 있다고 가정 해보십시오. 세 가지 매개 변수를 사용하여 메일 보내기 함수 B를 호출해야합니다. 내 컨트롤러 이름은 고객 컨트롤러입니다. 이것을 어떻게 수행 할 것인가? 제발 해결책을 말해줘. 감사합니다Yii2 Basic - yii2 동작에서 공통 기능 기능을 사용하는 방법

+0

이 기능을 다음과 같은 공용 도우미 클래스로 확장합니다. http://stackoverflow.com/questions/37648935/in-yii2-framework-better-place-to-define-common-function-which-is-accessible-ev/ 37649292 # 37649292. 또는 특성이나 행동을 창조하십시오. – SiZE

+0

코멘트를 주셔서 감사하지만 나는 이해하지 못한다 !! 다른 동작 클래스에서 매개 변수를 보내는 방법을 설명하십시오 – Daniyal

+0

매개 변수를 보내는 것은 무엇을 의미합니까? 함수의 인수로 전달하기 만하면됩니다. – xReprisal

답변

2

yii2의 경우 프로젝트 루트 폴더에 "components"라는 폴더를 만듭니다.

그런 다음 사용자 지정 구성 요소를 .i.e MyComponent.php 또는 기타 구성 요소 폴더에 씁니다.

namespace app\components; 

use Yii; 
use yii\base\Component; 
use yii\base\InvalidConfigException; 

class MyComponent extends Component 
{ 
    public function MyFunction($param1,$param2){ 
    return $param1+$param2; // (:) 
    } 
} 

이제 구성 파일에 구성 요소를 추가하십시오.

'구성 요소'앱에서 => [

 'mycomponent' => [ 

     'class' => 'app\components\MyComponent', 

     ], 
     ] 

액세스 :

Yii::$app->mycomponent->MyFunction(4,2); 
+0

변경 Yii :: $ app-> MyComponent-> MyFunction (4,2); Yii :: $ app-> mycomponent-> MyFunction (4,2); –

0

이 단지 컨트롤러 내에서 공유되는 경우, 당신은 단지 내부 함수를 만들 수 있습니다. Yii2의 구성 요소는 응용 프로그램 용도 (둘 이상의 컨트롤러간에 공유 됨)로 사용해야합니다.

private function myFunction(a, b){ 
     return a+b; 
    } 

그리고 또한

public function actionSomeAction(){ 
    if(myFunction(1,2)>4){...} 
} 

구성 요소의 아이디어는 단지 기능, 예를 들어 모든 사용자의 동작을 위해 더 많은 기능을 가지고있다 컨트롤러에 anywher에서 호출.