2014-10-09 70 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