2016-04-06 4 views
0

Betrachten wir unter meiner cpp\controllers\ Ich habe 5 Dateien wie (AController.php, BController.php etc ..)Ist es möglich, die Reglergröße von Layout in yii2

Jeder Controller verfügt über eine eigene öffentliche Variable wie diese zuzugreifen ..

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

Aus meiner app\views\main.php

Wenn A Controller ich brauche Testing den Wert genannt. Wenn B Controller aufgerufen wird, brauche ich Bhuvanesh.

Es ist in yii2 möglich? Danke im Voraus.

Antwort

0

Sie könnten die magische Methode __construct() verwenden? Diese Funktion wird direkt ausgeführt, wenn die Klasse verwendet wird. Wenn Sie so etwas wie

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

So würde ich es tun.

+0

Wo muss ich dies in Controller oder Ansichten verwenden ??? – Bhuvanesh

+0

in Ihrem Controller. @Bhuvanesh –

0

Warum erstellen Sie nicht eine Getter-Methode mit demselben Namen?

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

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

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

Dann können Sie rufen mit

$controller->variable 
+0

Für Ihre Antwort muss ich die Controller-Klassen im Layout hinzufügen. Ich habe 50 Dienstleistungen zu tun .. Also plante ich, die 50 Controller zu erstellen. Dann muss ich die 50 Klassen in meinem Layout hinzufügen. – Bhuvanesh

+0

Sie könnten dieses Problem in einem BaseController behandeln. Erstellen Sie eine öffentliche Funktion getVariable() in BaseController (jedes Subcontrollers) und basierend auf get_class ($ this) innerhalb der getVariable() können Sie verschiedene Funktionsantwort zurückgeben. –

+0

dann können Sie mit $ controller-> getVariable() aufrufen; nicht -> variabel, wenn er das __construct benutzt, bekommt er das Echo sofort, anstatt es nennen zu müssen :) __construct ist basic OOP, also empfehle ich das zu tun. –

2

Sie Yii2 Views Guide sollte lauten:

in der Ansicht, die Sie das Controller-Objekt durch den Ausdruck So $this->context

bekommen sollten Sie das einfach aus Ihrer Sicht verwenden :

$this->context->variable 
Verwandte Themen