Laravel 外部 URL 问题

ÛmÄ*_*lîk 5 php laravel-blade laravel-5.3

我想在我的一些锚标记中设置外部 URL,但是当 URL 没有 http/https 协议时面临问题。当 URL 没有这些协议时 URL 变成如下所示:

<a target="_blank" href="www.usatoday.com/"></a>
Run Code Online (Sandbox Code Playgroud)

当我点击它或将鼠标悬停在它上面时,它会显示并将我重定向到: http://localhost/event/www.usatoday.com

我在 href 中尝试了以下两种方法,但没有奏效:

{{url($eventSponsorsRow->sponsorUrl)}}
{{ $eventSponsorsRow->sponsorUrl }}
Run Code Online (Sandbox Code Playgroud)

而不是 href 中的 URL。Laravel 5.3

Jak*_*zak 10

这是 HTML 和浏览器的东西,而不是 Laravel/PHP 本身。

您只需要提供 url 的协议部分以使其成为外部。

您可以跳过,http:但它至少需要在 url 前面加双斜杠,例如:

<a target="_blank" href="//www.usatoday.com/"></a>
Run Code Online (Sandbox Code Playgroud)

请注意,如果您跳过该http(s):部分,它将使用当前使用的协议。

  • 当然,硬编码“//”是一个坏主意。当 url 值来自用户时,您应该对其进行验证和过滤。此时,您应该根据您希望如何在数据库中存储 url 来添加/删除 http 部分。 (2认同)