我有这个:
{!! HTML::link($item->website, $item->website) !!}
$item->website
是用户插入的网站。但是,如果用户插入类似www.mysite.com
的内容,则结果为localhost:8000/www.mysite.com
如果在数据库中,我把http://
放在网站前面,我会得到正确的结果。除了HTML::link
,还有其他方法可以正确显示链接吗?
谢谢。
您必须将完整的URL传递给HTML::link((;方法,否则Laravel将自动在URL前添加您的本地网站根。在您的情况下,您必须将http://添加到变量中,并将整个URL传递给方法link((;
检查此链接;(http://laravel-recipes.com/recipes/186/generating-a-html-link
HTML::link()
期望第一个参数是当前站点中的相对路径,或者是完全限定的域名。您需要检查$item->website
是否以"http"
开头,如果不是,则将其前置到字符串中。
<?php $prepend = (strpos($this->website, "http") === 0) ? "" : "http://"; ?>
{!! HTML::link($prepend.$this->website, $this->website) !!}
请注意,我正在检查"http"
而不是"http://"
。这使得"https"
网站也能正常工作。
Url必须以"http://"开头。如果用户输入不是从它开始的,那么您必须添加。