2016-08-25 10 views
2

私はYIIを使うのが初めてですyii2 basic.actually知っておきたいのは、同じコントローラの動作から共通の機能を呼び出す方法です。私は、メールを送るためのアクションAにいるとします。私は3つのパラメータを持つメール機能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', 

     ], 
     ] 

アクセス:

​​
+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からそれを呼び出すには、すべてのユーザーの行動を持っているために、たとえば、より多くの機能それだけの機能を持つことです。

関連する問題