Symfony&;Twig:如何通过DB数据获取Twig中的变量?

Symfony&;Twig:如何通过DB数据获取Twig中的变量?,twig,Twig,请回答一个问题 {{dump(app.user.slugName)}} 如果我在Twig中执行上述代码片段,我将在应用程序中获得登录用户的slugName(“my-user-2”,即)(slugName是实体用户的一个atribute)。好的&正确的。但是我想从var(来自BD数据的var)订购此操作 我有一个名为option的变量,设置如下: {%set option='app.user.slugName%} 但是当我试图用{{dump(option)}}输出这个变量时,它返回app.user

请回答一个问题

{{dump(app.user.slugName)}}

如果我在
Twig
中执行上述代码片段,我将在应用程序中获得登录用户的
slugName
(“my-user-2”,即)(slugName是实体用户的一个atribute)。好的&正确的。但是我想从var(来自BD数据的var)订购此操作

我有一个名为
option
的变量,设置如下:

{%set option='app.user.slugName%}

但是当我试图用
{{dump(option)}}
输出这个变量时,它返回
app.user.slugName
作为文本。它不会返回
my-user-2


twig
中有什么方法可以解决这个问题吗?这是一个生成菜单的函数,但有些链接需要一些参数。

我明白你的意思,但是
Twig
不能这样计算表达式。
要实现这样的目标,您需要这样一个片段

{% set value_methods = 'app.user.slugname' %}

{% set option_value = _context %}
{% for method in (value_methods|split('.')) if method != '' %}
    {% set option_value = attribute(option_value, (method|replace({'()': '', }))) %}
{% endfor %}

{{ option_value }}


(编辑) 请记住,您可以创建一个宏来实现此代码段的某些可重用性

{% import _self as macros %}
{{ macros.evaluate(_context, 'app.user.slugname') }}


{% macro evaluate(context, value_methods) %}
    {% set option_value = context %}
    {% for method in (value_methods|split('.')) if method != '' %}
        {% set option_value = attribute(option_value, (method|replace({'()': '', }))) %}
    {% endfor %}
    {{ option_value }}
{% endmacro %}

然后删除引号并重试。@u\u mulder抱歉,我忘了说“app\u user.SlugName”来自BD。