在 laravel 中生成 url

Posted

技术标签:

【中文标题】在 laravel 中生成 url【英文标题】:Generating url in laravel 【发布时间】:2019-03-10 21:03:53 【问题描述】:

我在 Laravel 中的 url 有问题

<td> Website: <a href="url($data[0]->internet)" target="_blank">$data[0]->internet</a></td>

其中internet 是一些网站名称,例如www.foo.com

问题是输出 URL 是 http://localhost/www.foo.com 而不是 http://www.foo.com

【问题讨论】:

target="_blank" ? 我可以从 laravel 文档中看到:The url helper may be used to generate arbitrary URLs for your application. The generated URL will automatically use the scheme (HTTP or HTTPS) and host from the current request:,那你为什么要使用 url() ? 在特定公司的新标签中”是什么意思? “试过但没用”是什么意思?设置target="_blank" 是首选方法。如果这对您来说“不起作用”,您可能有一个设置/插件阻止打开新选项卡,或者您正在更改错误的代码。 Inspect element 在浏览器的开发者工具中,并确保 target="_blank" 在那里。 Ooohhook,所以您的问题是公司的 URL 不正确?在新标签页中打开按预期工作?如果是这样,您可能想重新表述您的问题。并使用$data[0]-&gt;internet 而不是url($data[0]-&gt;internet)。感谢@D.Dimitrov 抱歉,问题没有正确提出。target="blank" 工作正常,但打开的 URL 不正确。没有 url 助手,它给我的输出为 localhost/foo/bar/www.foo.com 【参考方案1】:

如果您的变量 internet 是某个网站名称,例如 www.foo.com 并且您需要将此网址链接到您不需要的锚标记中 要在 url() 函数中调用这个变量,你可以简单地使用它 用于链接锚标记中的 url 的变量。

如果您想获取网站的基本 URL,则可以使用 url() 返回您网站的基本网址的功能。

只需将下面的行替换为您的代码

<td> 
Website: 
<a href="$data[0]->internet" target="_blank">$data[0]->internet</a>
</td>

【讨论】:

【参考方案2】:

试试这个方法:

<a href="!! $data[0]->internet !!" target="_blank">$data[0]->internet</a>

【讨论】:

【参考方案3】:

将您的 html 更改为

<a href=" $data[0]->internet " target="_blank">$data[0]->internet</a>

如 Laravel 文档中所述:https://laravel.com/docs/5.7/urls

url 帮助器可用于为您的 应用。生成的 URL 将自动使用该方案(HTTP 或 HTTPS)和来自当前请求的主机

$post = App\Post::find(1);

echo url("/posts/$post->id");

// http://example.com/posts/1

在您的情况下,您不需要 url 辅助函数。


还可以使用以下格式的 http 或 https 协议: http://www.foo.com 或 https://www.foo.com 制作绝对网址而不是相对网址。

【讨论】:

【参考方案4】:

将目标属性target="blank"更改为target="_blank"

【讨论】:

以上是关于在 laravel 中生成 url的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 6 在注册过程中生成用户名

未在 laravel 中生成 PDF

如何在 Laravel 5.7 中生成 JWT 刷新令牌

存储As()在Laravel中生成的列(MySQL)中的错误

如何在 Laravel 中生成和验证随机(和临时)密码?

在laravel中生成视图时如何使php vars保持不变?