2015-05-28 10 views
5

Quindi in Yii 1, nel file di visualizzazione è possibile accedere alle proprietà/azioni del controller utilizzando $this->action() o $this->property.Yii 2 Modo più veloce per accedere al controller dalla vista

In Yii 2, l'unico modo in cui posso vedere ciò è possibile utilizzando Yii::$app->controller->property o Yii::$app->controller->action(). Sono uno per non voler scrivere più codice del necessario, quindi mi chiedevo se c'è un metodo più breve per farlo.

risposta

14

Per il controller di visualizzazione è fondamentalmente "contesto" in cui è stato chiamato il rendering di questa vista.

È disponibile una proprietà speciale per visualizzare il controller corrente e viene chiamato esattamente così: context.

Esempio: $this->context

documentazione ufficiale:

+3

Beh io rammendare ... ho imparato qualcosa oggi :) – Blizz

+1

Questo funziona perfettamente e sembra un un po 'più intuitivo di 'Yii :: $ app-> controller;' – jtotheh

+1

Questo è anche un bene se stai sviluppando widget e vuoi chiamare il widget principale co mponent dal file di visualizzazione del widget. – friek108

0

\Yii::$app->controller in effetti l'unico modo "reale" per farlo.

C'è un modo di scrivere un po 'meno, so se è valsa la pena:

public function actionWhatever() 
{ 
    return $this->render('view', ['controller' => $this]); 
} 

Poi, nel tuo vista che si ha un $controller -variable.

Problemi correlati