我正在尝试创建一个Yii2主题,&想设置一个带有整个views文件夹范围的变量。对于我使用的单页主题...
$assetDir = Yii::$app->assetManager->getPublishedUrl(
'@vendor/path/to/assets/folder'
);
在index.php
&然后,我使用... 访问它
<img src="<?= $assetDir ?>/img/image.jpg" alt="">
对于部分我可以使用...
传递<?= $this->render('_partial.php', ['assetDir' => $assetDir]) ?>
我现在想在多个页面的主题中做类似的事情。如果不在每个页面中设置$assetDir
,则无法找到该怎么做。我想它会在main.php
布局中设置。
答案 0 :(得分:1)
如Sharing Data among Views中所述,使用params
数组。
view组件提供了params属性,可用于在视图之间共享数据。
例如,在about视图中,您可以使用以下代码指定面包屑的当前段。
$this->params['breadcrumbs'][] = 'About Us';
然后,在布局文件中,也是一个视图,您可以使用params传递的数据显示面包屑:
<?= yii\widgets\Breadcrumbs::widget([ 'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], ]) ?>