私はyii2 basicを使うのが初めてです。実際に私は同じコントローラのアクションから共通の関数を呼び出す方法を知りたい。私は、メールを送るためのアクションAにいるとします。私は3つのパラメータを持つメール機能Bを送信する必要があります。私のコントローラー名はカスタマーコントローラーです。どのようにこれを実行しますか。私に解決策を教えてください。ありがとう
回答:
回答№1は2yii2では、まず、プロジェクトのルートフォルダに "components"という名前のフォルダを作成します。
次に、カスタムコンポーネントをコンポーネントフォルダ.i.e MyComponent.phpなどに書き込んでください。
namespace appcomponents;
use Yii;
use yiibaseComponent;
use yiibaseInvalidConfigException;
class MyComponent extends Component
{
public function MyFunction($param1,$param2){
return $param1+$param2; // (:)
}
}
設定ファイルの中にあなたのコンポーネントを追加してください。
"components" => [
"mycomponent" => [
"class" => "appcomponentsMyComponent",
],
]
あなたのアプリでのアクセス:
Yii::$app->mycomponent->MyFunction(4,2);
回答№2の場合は0
コントローラ内でのみ共有されている場合は、その中に関数を作成することができます.Yii2のコンポーネントは、アプリケーション目的(複数のコントローラ間で共有)で使用する必要があります。
private function myFunction(a, b){
return a+b;
}
そしてあなたのコントローラの中のどこからでもそれを呼び出してください
public function actionSomeAction(){
if(myFunction(1,2)>4){...}
}
また、コンポーネントのアイデアは、たとえばすべてのユーザーに「動作」を持たせるなど、機能単なるより多くの機能を持たせることです。