如何将一个变量分配给 TWIG 中另一个变量的值

问题描述 投票:0回答:1

我正在使用名为 Mautic 的 PHP 产品,它利用 TWIG 模板语言。

他们有一些类似于

的访问令牌
{subject}

{contactfield=company}

我希望能够使用 |原始函数,但是当我尝试时

{contactfield=company | raw}

它让我心碎。

如果我设置一个变量,那么我可以使用双大括号和像 raw 这样的函数。

所以我想我需要为 contactfield=company 设置一个变量,然后我可以通过双花括号访问它。这就是我尝试做的方法,但没有成功。

{% set myvar = contactfield=company %}

我尝试使用 dump() 来猜测上下文中的变量名称可能是什么,但似乎该命令已被禁用。

我不确定语法应该是什么。

更新

我运行了以下代码

<ol>
    {% for key, value in _context %}
      <li>{{ key }}</li>
    {% endfor %}
</ol>

得到了这个结果

  1. 是新的
  2. 老虎机
  3. 内容
  4. 电子邮件
  5. 模板
  6. 基本路径
  7. 应用程序
  8. 首席财务官
  9. _家长

我怀疑 {contactfield=company} 可能是这些变量之一的属性的某种简写,但不确定如何深入研究顶级上下文变量以查看下面可能潜伏的其他数据。

我尝试在模板中使用 {{dump()}} 但它似乎被禁用了。

如果我知道如何检查这些顶级变量,我也许能够找出这些信息所在的位置。不幸的是我无法访问 PHP 环境,所以我必须通过反复试验来发现信息。

php twig
1个回答
0
投票

你可以尝试使用类似的东西:

{% block content %}
    <h1>Contact Information</h1>
    
    <h2>Basic Contact Fields</h2>
    <p>First Name: {{ contact.firstname is defined ? contact.firstname : 'Not available' }}</p>
    <p>Last Name: {{ contact.lastname is defined ? contact.lastname : 'Not available' }}</p>

    <h2>Custom Contact Fields</h2>
    {% for key, value in contact %}
        <p>{{ key }}: {{ value is defined ? value : 'Not available' }}</p>
    {% endfor %}

    <h2>Company Information</h2>
    {% if contact.companies is defined and contact.companies is not null %}
        {% for company in contact.companies %}
            <h3>Company Details</h3>
            {% for key, value in company %}
                <p>{{ key }}: {{ value is defined ? value : 'Not available' }}</p>
            {% endfor %}
        {% endfor %}
    {% else %}
        <p>No company information available.</p>
    {% endif %}
{% endblock %}

© www.soinside.com 2019 - 2024. All rights reserved.