簡體   English   中英

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

在env文件中設置APP_URL

APP_URL=http://localhost:4567

或者在config / app.php中設置url

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

許多內部函數和第三方庫直接或通過config('app.url')<\/code>使用 APP_URL .env var。 更好的方法是使用 Laravel 提供的 URL 生成器類,例如。 Url<\/code>門面<\/a>。

即便如此,您會在 Views 與 CLI 或 Jobs 中看到不同的結果(例如,電子郵件中的鏈接)。 在 Web 上下文中,Laravel 的大部分 URL 生成都是基於服務器\/請求 URL。 例如, url()<\/code>助手調用Illuminate\\Routing\\UrlGenerator<\/a>中的方法,這些方法最終使用Illuminate\\Http\\Request<\/a>的 URL 方法。

CLI 和 Queued Jobs 沒有 Request 對象,因此它們必須回退到其他東西。 沒錯,配置。

因此,即使鏈接、重定向和其他生成的 URL 將在 Web 中完美運行,但如果 APP_URL 未在您的 .env 中或直接在應用程序中設置,這些可能會在 HTTP 請求生命周期之外“損壞”(配置錯誤;)正如@Sachin Kumar<\/a>指出的那樣配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM