如何将参数传递给mainLayoutAsset.php文件?

时间:2016-06-23 12:14:58

标签: yii2

我在mainLayoutAsset.php文件中有以下代码

<?php
/**
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

namespace frontend\assets;
use yii\web\AssetBundle;

/**
 * @author Qiang Xue <qiang.xue@gmail.com>
 * @since 2.0
 */
class MainLayoutAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
    ];
    public $js = [
        'member-area/AdminLTE/app.js',
    ];
}

现在我想访问此文件中的params文件参数

例如。

public $js = [
        'member-area/AdminLTE/app.js?v='.Yii::$app->params["version"],
     ]

但是它给出了错误

PHP Parse Error – yii\base\ErrorException
syntax error, unexpected '.', expecting ']'

'js/tooltip.js?v='.Yii::$app->params["incFileVersion"],

1 个答案:

答案 0 :(得分:7)

关于类属性的PHP文档:

  

通过使用public,protected或private之一,然后是普通变量声明来定义它们。此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。

http://php.net/manual/en/language.oop5.properties.php

您可以简单地覆盖init()

public function init()
{
    parent::init();
    $this->js = [
        'member-area/AdminLTE/app.js?v=' . Yii::$app->params['version'],
    ];
}

你应该try this而不是。{/ p>