将变量值和键名与Twig中的句点/句点进行比较

时间:2014-10-09 19:12:58

标签: php json cakephp twig

我输出脚本标签的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条件正常工作。我现在只需要输出脚本标签。

1 个答案:

答案 0 :(得分: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