gpt4 book ai didi

symfony - 使用 TWIG 从数据库中检索到的外部 URL 的超链接

转载 作者:行者123 更新时间:2023-12-04 22:33:38 25 4
gpt4 key购买 nike

我正在使用 Symfony 2.0.19。我正在尝试创建一个指向外部 URL 的超链接,该 URL 是从数据库中检索的。

我试过这样做

<td><a href="{{dominio.url}}">{{dominio.url}}</a></td>

但我得到的路径是基本 URL 示例“localhost/web/www.tralalalala.com”中的 URL 的相对路径,而不仅仅是“www.tralalalala.com”。

我该怎么做呢?

最佳答案

下面是 Pierrickouw 建议的一个具体例子:

src/Twig 下创建 Twig 扩展或过滤器,并称之为例如 ExternalLinkFilter .定义类如下:

<?php 

namespace AppBundle\Twig;

class ExternalLinkFilter extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('external_link', array($this, 'externalLinkFilter')),
);
}

/* source: http://stackoverflow.com/a/2762083/3924118 */
public function externalLinkFilter($url)
{
if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
$url = "http://" . $url;
}

return $url;
}

public function getName()
{
return 'external_link_filter';
}
}

?>

现在,您应该将此类注册为 config/services.yml 中的服务。如下:
services:

# other services

app.twig.external_link:
class: AppBundle\Twig\ExternalLinkFilter
public: false
tags:
- { name: twig.extension }

现在您可以简单地使用名为 external_link 的过滤器就像您使用任何 Twig 的默认设置一样,例如:
...

<a href="{{check.hostname | external_link }}"> {{check.hostname}}</a>

...

关于symfony - 使用 TWIG 从数据库中检索到的外部 URL 的超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14169261/

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