gpt4 book ai didi

font-awesome - 在 Drupal 8 生成的链接中包含 html 文本

转载 作者:行者123 更新时间:2023-12-04 04:54:37 24 4
gpt4 key购买 nike

我很难通过 Drupal 8 渲染结构来设置链接样式。
此链接需要显示在我的自定义模块中:

$add_link = \Drupal::l('<i class="fa fa-cog"></i>' . t('Add new project'), $url);

因此,在 de 标签之间,我希望在文本前面有一个 Font Awesome 图标。
但是 Drupal 将所有 html 打印为可读文本。

我还注意到在 Drupal 8 中不推荐使用 l() 函数。
那么在 Drupal 8 渲染结构中执行此操作的最佳方法是什么?

最佳答案

花了我一段时间,但这应该工作。您的代码有 $url可能工作正常的变量,但下面的这段代码也显示了我是如何得到我的 $url .

$url = new Url(
'entity.eab_contact_entity.edit_form', array(
'eab_contact_entity' => $entity->id(),
)
);
$icon_text = $this->t('<i class="fa fa-pencil"></i>');
$edit_link = \Drupal::service('link_generator')->generate($icon_text, $url);

事实证明,任何进入链接的文本都需要是“安全的”,这样就不能注入(inject)恶意代码等。如果你很好奇,这里已经详细讨论过: https://www.drupal.org/node/2273923

不过,主要的一点是 是什么让上面的代码对我有用并回答你的问题 , 是 $this->t()围绕 Font Awesome 字符串 '<i class="fa fa-pencil"></i>' .这使它变得“安全”,并且生成的链接具有我们想要的 HTML,而不仅仅是打印出 HTML 的文本。

最后,如果您正在寻求生成 URL 的帮助, this tutorial有很多提示。

关于font-awesome - 在 Drupal 8 生成的链接中包含 html 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37665247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com