web-dev-qa-db-ja.com

Yii2のモデルから現在のモジュールオブジェクトを取得する方法

モジュールticketがあります。

モジュールクラスにはプロパティUserClassName(文字列)があります。

このモジュールには、Dialogというモデルがあります。

このモデル内で、モジュールプロパティUserClassNameにアクセスしたいと思います。

モデルDialogからモジュールオブジェクトを取得するにはどうすればよいですか?

追伸コントローラーから次にできること:$this->module

12
LostDok

className()を使用してクラス名を取得できます。

$yourModule = yourPath\YourModule::className();   

または、使用できるモジュールIDを取得するには:

Yii::$app->controller->module->id; 
19
scaisEdge

私は解決策を見つけました(私にも同じものが必要です)。モジュールオブジェクトを取得するには-非常に簡単です:

\Yii::$app->getModule('moduleName')->propertyOrMethod;
0
Verter
$module = MyModuleClass::getInstance();

GetInstance()メソッドは、現在要求されているモジュールクラスのインスタンスを返します。モジュールが要求されていない場合、メソッドはnullを返します。リクエストに応じてYiiによって作成されたものとは異なるため、モジュールクラスの新しいインスタンスを手動で作成したくないことに注意してください。

0
Oleg

yii2では、次のようにモジュール、コントローラー、アクションメソッドを識別できます。
Yii::$app->controller->module->id;(モジュールID取得用)
Yii::$app->controller->id;(コントローラIDを取得する場合)
Yii::$app->controller->action->id;(コントローラーアクションIDを取得する場合)

0
raghavendra