Laravel Change Connection Dynamically(Laravel 动态更改连接)
问题描述
如何更改 laravel 的连接表单控制器,但存储在数据库中的连接信息,如数据库管理器,我的示例:
How to change laravel's connection form controller but the connection information stored at database like database manager, my example :
我的数据库中有一个数据库信息:
I have a databases information on my database :
id, driver, database_name, username, password, host
所以在我的控制器上只需调用:
so at my controller just call :
$connection = Database::find( 1 );
$users = new Users();
$users->setConnection( [
'driver' => $connection->driver,
'host' => $connection->host,
'username' => $connection->username,
'password' => $connection->password
] );
$users = $users->get();
推荐答案
我会在这里找一个帮手.让我们在 app/Helpers/DatabaseConnection.php
中创建一个.
I will go for a helper here. Let's create one in app/Helpers/DatabaseConnection.php
.
namespace AppHelpers;
use Config;
use DB;
class DatabaseConnection
{
public static function setConnection($params)
{
config(['database.connections.onthefly' => [
'driver' => $params->driver,
'host' => $params->host,
'username' => $params->username,
'password' => $params->password
]]);
return DB::connection('onthefly');
}
}
现在我们在控制器的某个地方尝试
And now somewhere in controller we try
use AppHelpersDatabaseConnection;
...
$params = Database::find( 1 );
$connection = DatabaseConnection::setConnection($params);
$users = $connection->select(...);
注意:未经测试.我希望它有效或只是指导您
更多信息:
使用多数据库:https://laravel.com/docs/5.3/database#read-and-write-connections
动态设置配置:https://laravel.com/docs/5.3/configuration#accessing-configuration-values
这篇关于Laravel 动态更改连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Laravel 动态更改连接
基础教程推荐
- 超薄框架REST服务两次获得输出 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01