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。