2016-06-23 24 views
4

Ich habe folgenden Code in mainLayoutAsset.php DateiWie Parameter an mainLayoutAsset.php übergeben werden?

<?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 <[email protected]> 
* @since 2.0 
*/ 
class MainLayoutAsset extends AssetBundle 
{ 
    public $basePath = '@webroot'; 
    public $baseUrl = '@web'; 
    public $css = [ 
    ]; 
    public $js = [ 
     'member-area/AdminLTE/app.js', 
    ]; 
} 

Jetzt will ich in der Datei auf diese params Dateiparameter zugreifen

zB.

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

aber es Fehler

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

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

'Ausdruck ist nicht erlaubt als Feld Standardwert' ... Warum verwenden Sie' appendTimestamp' von 'AssetManager' Klasse –

+0

Ich möchte nicht Zeitstempel verwenden, da es Wert jedes Mal ändern wird. Was ich will ist, wann immer ich meine JS-Dateien ändere. Ich muss nur die Version ändern, so dass die neue Jquery enthalten ist und nicht die zwischengespeicherte! –

Antwort

7

Von PHP-Dokumentation über Klasseneigenschaften geben:

Sie definiert werden durch eines der Schlüsselwörter public, protected, oder privat, gefolgt von einem normale Variablendeklaration Diese Deklaration kann eine Initialisierung enthalten, aber diese Initialisierung muss ein konstanter Wert sein - das heißt, sie muss zur Kompilierzeit ausgewertet werden können und darf nicht von Laufzeitinformationen abhängen, um ausgewertet zu werden.

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

könnten Sie einfach init() außer Kraft setzen:

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

Und Sie können sollte try this stattdessen sein.

+0

Vielen Dank .. es hat funktioniert! –

Verwandte Themen