2017-02-15 44 views
1

我基本上沒有試過,因爲我還沒有在我查了文檔發現任何東西。Yii 2 - 如何將變量傳遞給渲染器的主視圖文件?

我基本上要傳遞一個變量,即。 $balance所以它會在layouts/main.php文件的範圍可供選擇:

我在哪裏可以這樣說:

$balance = MyClass::myMethod(); 

return $this->render('main', [ 
    'balance' => $balance, 
]); 

謝謝。希望任何人都明白。

回答

0

假設:您使用的是先進的模板,並有類似enter image description here的目錄結構。

該過程開始圍繞\ YII \基\視圖 - > beginContent(),它返回下列信息:enter image description here。默認情況下./frontend/views/layouts/base.php被稱爲'viewFile';然後加載_clear,然後加載main,最後顯示$ content的內容。

要覆蓋的內容$默認值,覆蓋*查看 - > beginContent的默認行爲()是必要的。

嘗試創建一個定義爲./frontend/controllers/ Controller-> beginContent($ viewFile,$ params = []){/ ... * /}的方法,看看它是否適用於您。

0

您可以發送變量首先查看文件一樣,

$balance = MyClass::myMethod(); 

return $this->render('myview', [ 
'balance' => $balance, 
]); 

所以,你可以在views/controller_name/myview.php

有創建文件myview.php可以直接$balance訪問變量。現在,你可以通過這個變量myview.php使用params到main.php(如果它是你的佈局文件)。

$this->params['balance'] = $balance; 

並通過$this->params['balance']訪問main.php中的變量。