[英]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:cache
或php artisan cache:clear
以便它讀取變量是否已更改
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.