首页 文章

尝试格式化{$时出现Twig错误

提问于
浏览
0

尝试以twig格式格式化该代码:

<textarea class="form-control" name="email_review_subject_<?php echo $language['language_id']; ?>" ><?php echo isset(${'email_review_subject_' . $language['language_id']}) ? ${'email_review_subject_' . $language['language_id']} : ''; ?></textarea>

所以我尝试了这种格式:

<textarea class="form-control" name="email_review_subject_{{ language['language_id'] }}" >{{ isset({'email_review_subject_' . language.language_id}) ? {'email_review_subject_' . language.language_id} : '' }}</textarea>

Error:

未捕获的异常'Twig_Error_Syntax',消息'哈希键后面必须跟冒号(:) . 意外的标记“标点符号”的值“ . ” (“标点符号”预期值“:”)

2 回答

  • 3

    twig 中没有 isset 这样的东西 . 如果要在树枝中使用动态变量,还需要访问特殊变量 _context

    一些可能的方案,

    <textarea class="form-control" name="email_review_subject_{{ language['language_id'] }}" >{{ attribute(_context, 'email_review_subject_'~language.language_id)|default('') }}</textarea>
    
    <textarea class="form-control" name="email_review_subject_{{ language['language_id'] }}" >{{ attribute(_context, 'email_review_subject_'~language.language_id) is defined ? attribute(_context, 'email_review_subject_'~language.language_id) : '' }}</textarea>
    

    fiddle

  • 3

    我很确定你不能使用 . 来连接Twig中的字符串 . 试试 ~ ,看看这里:How to concatenate strings in twig

相关问题