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

Pra*_*til 5 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',
    ];
}
Run Code Online (Sandbox Code Playgroud)

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

例如.

public $js = [
        'member-area/AdminLTE/app.js?v='.Yii::$app->params["version"],
     ]
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

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

'js/tooltip.js?v='.Yii::$app->params["incFileVersion"],
Run Code Online (Sandbox Code Playgroud)

soj*_*oju 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'],
    ];
}
Run Code Online (Sandbox Code Playgroud)

而你应该尝试这样做.