繁体   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