2016-12-14 128 views
0

我想在我的一些锚标记中设置外部URL,但在URL没有http/https协议时遇到问题。当URL是没有这些协议进行网址变成像下面的:Laravel外部URL问题

<a target="_blank" href="www.usatoday.com/"></a> 

,当我点击它或将鼠标悬停在它,它显示和重定向我: http://localhost/event/www.usatoday.com

我试着按照HREF两种方式但没有工作:

{{url($eventSponsorsRow->sponsorUrl)}} 
{{ $eventSponsorsRow->sponsorUrl }} 

而不是在href中的URL。 Laravel 5.3

回答

1

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

你只需要提供URL的协议部分,使其成为外部。

可以跳过http:但它需要在URL的面前就像至少双斜线:

<a target="_blank" href="//www.usatoday.com/"></a> 

请不,如果你跳过http(s):部分将使用当前使用的协议。

+0

它像你一样伤心,但如果我写这些'//'硬编码,那么如果用户输入这些协议的URL,它将停止工作。有没有办法处理它,或者我必须像PHP中一样处理它? –

+0

当然硬编码“//”是一个坏主意。您应该验证并过滤来自用户的url值。此时,您应该添加/删除http部分,具体取决于您希望如何在您的数据库中存储网址。 –