2016-04-06 14 views
0

にレイアウトから、コントローラの変数にアクセスすることができます。..は、それが各コントローラは、このような独自のパブリック変数を持ってい</p> <p>私は(.. <code>AController.php</code>、<code>BController.php</code>など)のような5つのファイルをした私の<code>cppcontrollers</code>の下で考えてみましょうyii2

app\views\main.php

から

AController.php --- public $variable='Testing'; 
BController.php --- public $variable='Bhuvanesh'; 

Aコントローラは、私は値Testingを必要と呼び出された場合。 Bコントローラが呼び出された場合はBhuvaneshが必要です。

yii2で可能ですか?前もって感謝します。

答えて

0

__construct()マジックメソッドを使用できますか?この関数はクラスが使用されたときに実行されます。あなたが何かを作るなら

public function __construct(){ 
    echo $this->var; //echo out whatever you want here. 
} 

それは私がそれをする方法です。

+0

ここでコントローラまたはビューでこれを使用する必要がありますか?あなたのコントローラの – Bhuvanesh

+0

。 @Bhuvanesh –

0

同じ名前のゲッターメソッドを作成してみませんか?あなたはそう表現$this->context

により、コントローラオブジェクトを取得することができ、ビュー内

class AController { 
    public function getVariable() { return 'A'; } 
} 

class BController { 
    public function getVariable() { return 'B'; } 
} 

class CController { 
    public function getVariable() { return 'C'; } 
} 

次に、あなたはあなたがYii2 Views Guideをお読みください

$controller->variable 
+0

あなたの答えは、コントローラクラスをレイアウトに追加する必要があります。私は50のサービスをしています。だから私は50のコントローラを作成することを計画していました。私はレイアウトで50のクラスを追加する必要があります。 – Bhuvanesh

+0

この問題はBaseControllerで処理できます。 (それぞれのサブコントローラの)BaseControllerにpublic関数getVariable()を作成し、getVariable()内のget_class($ this)に基づいて、異なる関数応答を返すことができます。 –

+0

次に、$ controller-> getVariable()を呼び出すことができます。彼が__constructを使用していれば、それを呼び出す必要がなく即座にエコーを得ることができます:) __constructは基本的なOOPですので、それを行うことをお勧めします。 –

2

で呼び出すことができます、あなたは単にあなたのビューでこれを使うべきです:

$this->context->variable 
関連する問題

 関連する問題