我试图将我的PHP代码转换为Twig代码 .
PHP代码:
<?php foreach ($languages as $language) {
if(empty($my_title[$language["language_id"]])){$my_title[$language["language_id"]] ="MY Title";}
?>
到Twig:
{% for language in languages %}
{% if not my_title[language.language_id] %}
{% set my_title[language.language_id] = "MY Title" %}
{% endif %}
{% endfor %}
但是,会出现以下错误 .
致命错误:未捕获异常'Twig_Error_Syntax',消息'意外令牌'标点符号“值”[“(”语句块结束“预期)....
这里有什么问题?如何在树枝上正确编写这段代码?
1 回答
您无法直接在Twig中将项添加到数组或散列 . 您需要使用
merge
过滤器,如下所示:请注意
language.language_id
周围的括号 . 那是因为哈希键不能是表达式而是文字 .language.language_id
周围的括号确保在用作哈希键之前计算表达式 .此外,如果
my_title
哈希没有将密钥存储在language.language_id
变量中,则if
语句将失败 . 你应该在那里使用is defined
测试 .完整的例子: