laravel - Laravel - 动态指定数据库连接
问题描述
我在我的 Laravel 应用程序中使用了 2 个数据库。我有一个本地 SQLite 数据库和一个远程 MySQL 数据库。现在我需要在需要时切换env
文件以连接到每个数据库。我的问题是,是否可以切换 env 文件,以便我用于两个数据库的模型在相应的数据库上工作。
这个项目是相当新的,所以如果有人知道更好的方法来处理这个问题,我会全力以赴。
解决方案
connections
您可以在您的文件中定义几个,并通过外观上的方法config/database.php
访问每个连接:connection
DB
$sqliteUsers = DB::connection('sqlite')->select(...);
$mysqlUsers = DB::connection('mysql')->select(...);
查看Laravel 文档中的“使用多个数据库连接”部分了解更多信息。
您可以on
在雄辩的模型上使用方法:
use App\User;
$sqliteUsers = User::on('sqlite')->get()
$mysqlUsers = User::on('mysql')->get();
你也可以静态地为一个 eloquent 模型指定一个连接:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Flight extends Model
{
/**
* The connection name for the model.
*
* @var string
*/
protected $connection = 'sqlite';
}
查看Laravel 文档的“数据库连接”部分了解更多信息。
推荐阅读
- c# - 启动 Visual Studio 2019 时 X 包未正确加载
- machine-learning - 为什么谷歌语音到文本 api 提供如此糟糕的分类?
- windows - 使用 netsh 命令连接到隐藏的 WiFi
- powershell - Azure Pipelines - 需要等效的 Az DevOps 命令
- java - 为什么我在创建列表时会收到错误消息?
- node.js - Cloud Function 无法写入 Cloud Firestore 中的 Map 数据类型
- android - In App Billing - SKU 在计费过程中为空
- wordpress - 在 WooCommerce 注册表单中添加第二个复选框
- r - 如何在决策树规范中设置拆分规则?
- windows - Windows Compact Embedded:从 C++ 调用 C# DLL