Laravel: URL::to('/') 本地主机的端口号未包含在数据库种子文件中

Laravel: URL::to('/') port number for localhost not included in db seed files

我运行在端口 4567 上连接了一个本地服务器。我正在努力做到这一点,以便在我的数据库播种时将对我站点主页的引用保存在我的数据库中。但是我注意到当我在我的种子中 运行 URL::to('/') 它只包含 "localhost" 而没有端口,但是如果我将它包含在我的视图代码中它会显示为 "localhost:4567"。为什么是这样?如果可能的话,我该如何修复它而不写关于我所处的生产环境的 if 语句条件?谢谢。

URL::to('/')

的种子文件结果
http://localhost

查看 URL::to('/')

的文件结果
http://localhost:4567

要么在 env 文件中设置 APP_URL

APP_URL=http://localhost:4567

或在config/app中设置url。php

'url' => env('APP_URL', 'http://localhost:4567'),

许多内部函数和 third-party 库直接或通过 config('app.url') 使用 APP_URL .env 变量。更好的方法是使用 Laravel 提供的 URL 生成器 类,例如。 Url facade.

即便如此,您会在视图中看到与在 CLI 中或在作业中不同的结果(例如电子邮件中的链接)。在网络环境中,大多数 Laravel 的 URL 一代都是基于 server/request URL。例如,url() 助手调用 Illuminate\Routing\UrlGenerator that ultimately use Illuminate\Http\Request 的 URL 方法中的方法。

CLI 和队列作业没有 Request 对象,因此它们必须回退到其他对象。没错,配置。

因此,即使链接、重定向和其他生成的 URL 将在网络中完美运行,但如果 APP_URL 没有在您的 .env 中设置,也没有像 @Sachin Kumar 指出的那样直接在应用程序配置中设置。