Yii2创造&使用视图文件夹范围的变量

时间:2017-02-15 07:31:47

标签: yii2 yii2-advanced-app

我正在尝试创建一个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布局中设置。

1 个答案:

答案 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'] : [],
]) ?>