簡體   English   中英

Laravel:更改在排隊通知內部調用的路由中的應用程序 URL

[英]Laravel: Change app url in routes called inside queued notifications

我正在開發一個基於租戶的應用程序,並希望為每個租戶定制通知。 我的問題是,一旦 Laravel 隊列開始運行,它會讀取APP_URL=olddomain.com環境變量並將其用於通知內部生成的每個路由。 即使我嘗試使用config(['app.url' => 'newdomain.com'])更改配置,它仍然會輸出任何帶有olddomain.com前綴的路由。 我可以將newdomain.com作為參數傳遞給通知並執行如下操作:

$domain = "newdomain.com"; 
$route = route('named-route', [{parameters}], false);
$finalRoute = $domain . '/' . $route; (Output: newdomain.com/named-route)

但這似乎太“hacky”了。 是否可以為隊列中的每個通知更改app.url

你可以這樣做,把它放在你的啟動方法里面的'app/Providers/AppServiceProvider.php'中:

app()->singleton('new-domain', 'https://newdomain.com');

然后,在您的終端(在您的項目文件夾中)執行php artisan config:cache ,然后在任何您想要的地方調用它:

$myCustomizedDomain = app('new-domain');
$myCustomizedUrl = $myCustomizedDomain . "/my-prefix";

因為沒有辦法做你要找的東西,抱歉。

編輯:

我在 laravel 文檔版本 6x 中找到了這個:

  • 重定向到外部域

有時您可能需要重定向到應用程序之外的域。 您可以通過調用 away 方法來執行此操作,該方法創建一個 RedirectResponse 而無需任何額外的 URL 編碼、驗證或驗證:

return redirect()->away('https://www.google.com');

這允許您從服務器端重定向到應用程序之外的某個頁面。

如果您更改 .env 文件中的變量,請確保運行php artisan config:cachephp artisan cache:clear以便它讀取變量是否已更改

暫無
暫無

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

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