Laravel - 更改特定 URL 的数据库连接?

2023-12-08

我对使用 Laravel 框架相当陌生。我有以下要求。我有一个域 - example.com,它的整个代码堆栈都在 laravel 中运行。假设在配置中默认数据库连接是 - 'db1'

现在,如果网址变为 - example.com/country - 我希望默认数据库连接变为 - 'db2'

我还希望将基本 URL 更改为 example.com/country,因为所有模块都将相同。此处仅更改数据库连接。

有人可以帮我吗?


我会按以下方式进行:

将允许的国家/地区列表放入配置文件中(countries.php) .

In routes.php:

// choosing country
$country = '';

if (in_array(Request::segment(1), Config::get('countries'))) {

    $country = Request::segment(1);
}

// making route for top level 
if ($country != '') {
    Route::any( '/', 'MainPage@index');
}

// making routes optionally prefixed by country 
Route::group(
    array('prefix' => $country,
    function () {
       // here all routes
     });

In database.php在定义连接的地方,您可以添加其他连接,例如:

'germany' => array(
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'germany_connection',
    'username'  => 'root',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

现在在同一个文件中(尽管您可能应该将其移到其他地方)您可以执行以下操作:

if ($country == 'germany') {
    DB::disconnect();
    Config::set('database.default','germany');
    DB::reconnect();
}

您当然可以在此处添加许多条件,或者如果您已为每个允许的国家/地区定义了连接,您可以简单地执行以下操作:

if ($country != '' ) {
    DB::disconnect();
    Config::set('database.default', $country);
    DB::reconnect();
}

它应该可以工作,但我还没有测试过

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel - 更改特定 URL 的数据库连接? 的相关文章

  • SQLSTATE[HY000] [2002] 资源暂时不可用 - mysql - innodb 和 pdo

    在我的错误日志中得到大量结果 如下所列 数据库中的所有表都是 innodb 并且就与这些表的任何交互而言 一切都是带有准备好的语句的 pdo 正如我所说 所有错误几乎与下面列出的错误相同 但发生在几个不同的页面上 无论页面如何 错误行始终指
  • Facebook 扩展权限

    更新2 好的 通过更改使其 有点 工作 loginUrl facebook gt getLoginUrl array canvas gt 1 fbconnect gt 0 req perms gt publish stream next g
  • 使用 PHP 分割逗号分隔名称

    我的名字格式为姓氏 名字 在我的数据库中 第一个和最后一个字段都有不同的字段 我想使用 PHP 读取逗号之前的所有内容作为姓氏 以及逗号之后的所有内容作为名字 实现这一目标的最佳方法是什么 list Lastname Firstname e
  • 使用 CodeIgniter 加载视图文件夹外的视图

    我需要从以下范围之外加载视图 this gt load gt view 这似乎是从base application views目录 如何从外部访问视图 application 目录 我想我将不得不延长CI Loader class这是最好的
  • 在 PHP 中使用可变变量是不好的做法吗?

    例如 一个简单的MVC类型系统 api class method使用重写为 PHP 变量 htaccess nginx conf 然后做类似的事情
  • phpenmod 显示其他 php 版本的路径

    我的 Ubuntu 机器上安装了 php 7 0 和 7 2 当我执行时php v 它告诉我我正在使用 php 7 2 在 Apache 上我还启用了 php 7 2 当我跑步时phpenmode zip 我明白了 WARNING Modu
  • PHP 多个 Ajax 请求:第一个请求阻止第二个请求

    我在一页上有 2 个 ajax 请求 我运行了第一个请求并单独启动了第二个请求 但第二个在第一个运行后停止工作 第一次结束后继续 第一个请求需要很长时间 大约 30 60 秒 此时我需要第二个请求来显示日志第一个请求发生的情况 我尝试使用
  • json_decode 到自定义类

    是否可以将 json 字符串解码为 stdClass 以外的对象 不是自动的 但你可以按照老式的路线来做 data json decode json true class new Whatever foreach data as key g
  • FPM 与 apache2 无法工作(权限被拒绝)

    我正在尝试使用 apache fastcgi 和 fpm 设置一个 Debian Web 服务器 但我越来越恼火 一旦我停用 mod php 我就会收到以下错误 2014 年 5 月 22 日星期四 12 16 10 错误 客户端 xxx
  • 如何使用 PATCH 更新简单的数据库字段?

    我是 php 和 API 的新手 我正在尝试学习这些方法 但我无法执行 PATCH 或 PUT 来更新我的简单 mysql 数据库 我使用了以下代码 if isset PATCH con mysqli connect localhost r
  • 我应该在 Symfony 中哪里放置既不是控制器也不是模型的类?

    对于我的应用程序包 我需要一些既不是控制器也不是模型的类 例如 我想要一个scorecard具有诸如 技能 效率 美丽 等成员的类 此外 它可能具有诸如 meanScore 之类的成员方法 getters 这样的类在 Symfony 框架中
  • Google Closure 编译器和 multipart/form-data 不起作用

    我正在向 google 闭包编译器 API 服务发出请求 content file get contents file js url http closure compiler appspot com compile post true p
  • zend框架验证模型中的数据而不是表单中的数据

    使用 Zend Framework 2 在我的应用程序中 要编辑数据库中的数据 可以编译 html 表单或发送 http post 请求 我的服务器作为 Web 服务实现 在第二种情况下 不会呈现表单 问题 如果当服务器收到不是从表单发送而
  • 如何将路径添加到 Apache PATH 变量?

    我在 apache2 的 custom conf 文件中设置了以下内容 SetEnv PATH PATH opt local lib mysql5 bin this is a test 但是它不起作用 当我打电话时 hey shell ex
  • PHP 搜索部分字符串

    如何在键入时搜索部分字符串 不使用 MySQL 例如 MySQL 中的 LIKE 函数 但在搜索字符串时使用 PHP 例如 但这显然行不通 但是有没有一个函数可以搜索部分字符串 那太好了 EDIT 如果它在数组中怎么办 如果我使用 strp
  • 将 Base64 字符串转换为图像文件? [复制]

    这个问题在这里已经有答案了 我正在尝试将我的 Base64 图像字符串转换为图像文件 这是我的 Base64 字符串 http pastebin com ENkTrGNG http pastebin com ENkTrGNG 使用以下代码将
  • 什么是 PHP session_start()

    它是否基于 cookie 启动当前会话 从 PHP 网站上得到的 PHP如何控制会话 如果我在用户打开我的登录页面时启动会话 我什至可以使用该会话做什么 我可以使用当前会话来获取有关登录用户的信息吗 PHP 会话系统允许您将数据安全地存储在
  • MVC 框架中的缓存策略?

    我编写了自己的小型 PHP MVC 框架 现在正在探索 PHP MVC 框架中的缓存策略 我正在考虑可以缓存什么 在哪里以及如何缓存 我的框架是简单的MVC框架 我有前端控制器 它启动应用程序 注册类自动加载 设置 php 运行时指令 最后
  • 如何在没有 SSH 和 CLI 访问生产的情况下部署 symfony 项目 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 大多数托管提供商仅具有 FTP 访问权限 是否可以 常见地进行 symfony 项目 3 x 或 4 x 的本地安装 然后通过 FTP 上
  • Yii2 无效调用:设置只读属性

    我有一个Post具有多对多关系的模型Tags 在 Post 模型中定义 public function getTags return this gt hasMany Tags className id gt tag id gt viaTab

随机推荐