当前位置:  开发笔记 > 编程语言 > 正文

在Laravel中动态设置数据库连接和语言

如何解决《在Laravel中动态设置数据库连接和语言》经验,为你挑选了1个好方法。

我有3个域指向相同的Laravel应用程序.我想要的是每个人连接到自己的数据库并根据TLD加载自己的语言文件.我可以在哪里设置这些设置的文件?我可以直接在配置文件中执行此操作,也可以在加载配置之前执行某些操作.

我所拥有的是一个简短的函数,它将解析域并获得TLD,在此基础上,经过快速验证后,我们将知道将使用哪种数据库和语言.



1> jedrzej.kury..:

您可以使用中间件轻松完成此操作 - 请参阅此处的一些文档:https://laravel.com/docs/master/middleware

在执行控制器之前,您需要一个可以为所有请求运行的中间件.此中间件应配置基于域使用的应用程序区域设置和连接,然后执行请求.类似于以下逻辑的东西应该可以解决问题:

public function handle($request, Closure $next)
{
  $host = $request->getHost();

  //do your logic that determines the language and connection to use based on TLD
  $language = $this->getLanguageForTld($host);

  //set connection used
  Config::set('database.default', $language);

  //set application locale
  App::setLocale($language);

  return $next($request);
}

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有