2014-10-09 46 views
0

用於輸出腳本標記的CakePHP視圖元素具有一個名爲scriptsGroup的變量,其值爲例如main傳遞給它。在Twig中比較變量值和鍵名與句號/句點

嫩枝:

{{ dump(scriptsGroup) }} 

輸出:

string(4) "main" 

我也有以下視圖陣列稱爲busters

嫩枝:

{{ dump(busters) }} 

輸出:

object(stdClass)#134 (2) { 
    ["public/js/build/main.js"]=> 
    string(8) "7e9a1c32" 
    ["public/css/main.css"]=> 
    string(8) "d41d8cd9" 
} 

在枝條,如何可以檢查(,main在這種情況下)由scriptsGroup變量稱爲腳本是busters陣列中,如果是,則在文件名中輸出帶有相關散列的腳本標記。期望的輸出的

實施例:

<script src="/js/build/main_rev-7e9a1c32.js"></script> 

我不知道如何處理與具有句號/週期,以及如何將變量與陣列的密鑰相匹配的數組的鍵。我嘗試了#{}插值語法,但失敗了。

更新:我使用~嘗試:

{% if busters['public/js/build/' ~ scriptsGroup ~ '.js'] %} 

Impossible to access a key "public/js/build/main.js" on an object of class "stdClass" that does not implement ArrayAccess interface

更新2:我意識到我不能正常使用PHP的json_decode功能 - 它現在轉換爲關聯數組,所以我的新if條件的工作。我只需要輸出腳本標籤。

回答

0
{% if busters['public/js/build/' ~ scriptsGroup ~ '.js'] %} 
    <script src="/js/build/{{ scriptsGroup }}_rev-{{ busters['public/js/build/' ~ scriptsGroup ~ '.js'] }}.js"></script> 
{% endif %} 

它使用the [] and ~ operators