如果网址不包含字符串“ http”,则Laravel href链接无法正常工作

时间:2018-07-12 18:59:06

标签: html laravel http href

我有这个标签

<a href="{{ $organization->website }}">Link</a>

如果$ organization-> website是开头包含http://或https://的URL,则该链接将起作用。

但是,如果没有,该链接会将我带到这样的地方

http://localhost/public/www.google.com而不是www.google.com

我知道您可以使用//,这样不带http的链接就可以正常工作

<a href="//{{ $organization->website }}">Link</a>

但是,现在开头不能带有http://或https://的链接。

是否有可以同时使用的解决方案(不带http的URL和带http的URL)?

2 个答案:

答案 0 :(得分:0)

您可以用//代替https://,http://或/

喜欢:

'//' . (strpos($url, '//') !== false ? substr($url, strpos($url, '//') + 2) : ltrim($url, '/'))

因此它将是:

<a href="{{ '//' . (strpos($organization->website, '//') !== false ? substr($organization->website, strpos($organization->website, '//') + 2) : ltrim($organization->website, '/')) }}">Link</a>

https://www.google.comhttp://www.google.com,//www.google.com、/www.google.com或www.google.com将被转换为//www.google.com,我相信这是您需要什么

答案 1 :(得分:0)

这是我使用OctoberCMS(laravel)在树枝模板中解决问题的方法:

eventen.about_url | slice(0,4)在url变量的开头查找“ http”,如果在该变量中按原样使用该链接,如果没有,则在链接之前添加//。 >

{% if eventen.about_url|slice(0, 4)=='http' %}
    <a href="{{eventen.about_url}}" target="_blank">
       Link
     </a>
{% else %}
    <a href="//{{eventen.about_url}}" target="_blank">
       Link
    </a>
{% endif %}