3 回答

TA貢獻1934條經(jīng)驗 獲得超2個贊
您不能將變量從布局傳遞到視圖。那是因為視圖先渲染,布局在視圖之后渲染。
如果您有一些財產(chǎn)需要在多個地方訪問,則需要以其他方式進行。
1)您可以將它包裝在一些自定義組件中,然后通過組件訪問它。您可以將設置變量的邏輯放入方法中init()
。然后就可以通過 DI 容器使用組件了。請參閱有關組件的文章。
2)您可以制作一個靜態(tài)幫助程序類,它將返回正確的值。
3)您可以使用一些事件或回調(diào)來設置視圖屬性中的變量params
。這樣它將在$this->params
數(shù)組中的每個視圖/布局中可用。您可以使用例如控制器或其事件中的beforeAction()
回調(diào)。在 beforeAction 回調(diào)中,您可以從您可能需要使用的其他地方訪問該屬性。beforeAction
params
$this->view->params
Yii::$app->view->params

TA貢獻1951條經(jīng)驗 獲得超3個贊
您的變量在 layouts/header.php 中,如果您想在 site/index.php 中訪問它,那么您應該將該變量傳遞給此視圖 (site/index.php)
或者另一種選擇是使用會話。

TA貢獻1898條經(jīng)驗 獲得超8個贊
您需要將此代碼添加到您的案例陳述中,并且默認
$this->render('index.php',array('avalue'=>$avalue));
- 3 回答
- 0 關注
- 147 瀏覽
添加回答
舉報