【问题标题】:How do I use Twig to create raw, working html URL's in a Drupal 8 View?如何使用 Twig 在 Drupal 8 视图中创建原始的、有效的 html URL?
【发布时间】:2019-05-27 21:54:24
【问题描述】:

问题
在自定义视图模板中,我尝试在 <a href=""> 标记内将 twig 变量作为原始数据输出,但它没有输出任何内容?

我的尝试
我已经尝试使用 Twig Tweak 插件,按照他们的备忘单 (https://www.drupal.org/docs/8/modules/twig-tweak/cheat-sheet-8x-2x) 上的说明进行操作,但这不起作用。我也试过这样打印出来

{{ fields.buy_now_link.content | raw }}

但没有运气。

这篇 Stack Overflow 文章 (Acces raw data in Drupal 8 view template) 通过在主题文件中设置自己的变量来提供解决方案,但这似乎有点冗长和繁琐?

这就是我所拥有的
在 Drupal 8 中,我有一个名为 Albums 的内容类型,它有一个名为“Buy Now Link”的“纯文本”字段。在这里,用户输入一个 URL,它只是一个纯文本字符串,如下所示:

/music/album/buy-now.html 

我为此字段添加了一个视图并创建了一个名为 views-view-fields--music-album.html.twig 的自定义视图模板,我正在尝试将该字段打印为原始像这样的数据:

<a href="{{ fields.buy_now_link.content }}">Buy Now</a>

问题是当我在浏览器中查看它时,它什么也没有显示。但是,如果我在&lt;a&gt; 标签之外打印它,那么它工作得非常好。

预期结果
此过程的预期结果如下:

<a href="{{ fields.buy_now_link.content }}">Buy Now</a>

在浏览器中这样打印出来:

<a href="/music/album/buy-now.html ">Buy Now</a>

如果有任何帮助,我将不胜感激。谢谢!

【问题讨论】:

    标签: drupal view twig field


    【解决方案1】:

    我找到了自己问题的答案。这就像获取您想要的变量并将其附加到 striptag 过滤器一样简单。

    为了保持可读性,您可以添加一个变量。例如。

    如果我的 twig 变量是 {{ fields.buy_now_link.content }}

    然后我将使用它来使用我自己的标识符设置自定义变量,例如 myURL

    {% set myURL = fields.buy_now_link.content %}

    然后我可以使用两种不同的方式:

    选项一:

    {{ myURL|striptags }}

    或选项二:

    {% filter|striptags %}
            {{ myURL.content }}
    {% endfilter %}
    

    终于
    现在我们可以这样做:

    &lt;a href="{{ myURL }}"&gt;Buy Now&lt;/a&gt;

    如果选项一不适合您,请尝试选项二。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多