我输出脚本标签的CakePHP视图元素有一个名为scriptsGroup
的变量,其值为main
,传递给它。
嫩枝:
{{ 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"
}
在Twig中,我如何检查scriptsGroup
变量引用的脚本(在本例中为main
)是否在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 :(得分:0)
{% if busters['public/js/build/' ~ scriptsGroup ~ '.js'] %}
<script src="/js/build/{{ scriptsGroup }}_rev-{{ busters['public/js/build/' ~ scriptsGroup ~ '.js'] }}.js"></script>
{% endif %}