gpt4 book ai didi

php - fatal error : Uncaught exception 'Twig_Error_Syntax' with message 'Unexpected token "punctuation"

转载 作者:行者123 更新时间:2023-12-03 03:17:57 25 4
gpt4 key购买 nike

我尝试将我的 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 %}

但是,确实出现以下错误。

Fatal error: Uncaught exception 'Twig_Error_Syntax' with message 'Unexpected token "punctuation" of value "[" ("end of statement block" expected) in....

这里出了什么问题?如何在twig中正确编写这段代码?

最佳答案

您无法直接将项目添加到 Twig 中的数组或哈希中。您需要使用 merge 过滤器,如下所示:

{% set my_title = my_title|merge({(language.language_id): 'MY Title'}) %}

请注意 language.language_id 周围的括号。这是因为哈希键不能是表达式,而是文字。 language.language_id 周围的括号确保在用作哈希键之前先计算表达式。

此外,如果 my_title 哈希没有存储在 language.language_id 变量中的 key ,您的 if 语句将会失败。您应该在那里使用 is Defined 测试。

完整示例:

{% for language in languages %}
{% if not my_title[language.language_id] %}
{% set my_title = my_title|merge({(language.language_id): 'MY Title'}) %}
{% endif %}
{% endfor %}

关于php - fatal error : Uncaught exception 'Twig_Error_Syntax' with message 'Unexpected token "punctuation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46129449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com