【问题标题】:twig variable won't pass - symfony sonatatwig 变量不会通过 - symfony sonata
【发布时间】:2019-03-18 11:58:27
【问题描述】:

5天过去了,还是没有成功!

我转储了我的 card 变量的结果,它返回了结果。

但是当我尝试通过我的树枝模板上的 varibale 传递它时,它会抛出:

变量“卡片”不存在。

它在 SonataAdmin 中定义。

protected function configureShowFields(ShowMapper $showMapper)
{

    $card = $this->getCardTransactions(); // on dump(), it works

    $showMapper->tab('Cards')
                    ->add('Data', 'string', array(
                        'template' => "@AdminTemplates/sonata/details.html.twig",
                        'card' => $card
                    ))
                    ->end()
                ->end();
}

在我的树枝上;

 {% for c in card %}
      {{ c.id }}
  {% endfor %}

我认为这与 SonataAdmin 以及它如何处理此类调用有关,但我已阅读文档并在线搜索但仍然没有运气。

【问题讨论】:

标签: twig sonata-admin symfony-3.4 symfony-sonata


【解决方案1】:

您必须在模板中使用field_description.options 对象才能访问您的变量。

protected function configureShowFields(ShowMapper $showMapper)
{

    $showMapper
        ->tab('Cards')
            ->add('Data', 'string', [
                'template' => "@AdminTemplates/sonata/details.html.twig",
                'card' => $this->getCardTransactions(),
            ])
        ->end();
}
{# @AdminTemplates/sonata/details.html.twig #}
{% extends '@SonataAdmin/CRUD/base_show_field.html.twig' %}

{%- block field -%}
    {% spaceless %}
        {% for card in field_description.options.cards %}
            {{ card.id }}
        {% else %}
            <p>No card</p>
        {% endfor %}
    {% endspaceless %}
{%- endblock -%}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 2016-08-24
    相关资源
    最近更新 更多