我可以看到如何使用app/config/database.php
中的配置文件来建立多个连接,这方面已经有了很好的文档记录。
除此之外,你也可以在.env文件中定义多个连接吗?
我可以看到如何使用app/config/database.php
中的配置文件来建立多个连接,这方面已经有了很好的文档记录。
除此之外,你也可以在.env文件中定义多个连接吗?
首先,您需要配置连接。您需要在项目中创建一个config目录,并添加文件config/database.php。像这样:
<?php
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'homestead',
'username' => 'root',
'password' => 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'mysql2' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'homestead2',
'username' => 'root',
'password' => 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
],
一旦您添加了连接配置,您可以通过从容器中获取数据库管理对象并调用 ->connection ('connection_name') 来访问它们。请参阅下面的完整示例。
<?php
namespace App\Http\Controllers;
use Illuminate\Database\DatabaseManager;
class StatsController extends Controller
{
/**
* @return array
*/
public function getLatest()
{
// Resolve dependencies out of container
/** @var DatabaseManager $db */
$db = app('db');
$database1 = $db->connection('mysql');
$database2 = $db->connection('mysql2');
// Look up 3 newest users and 3 newest blog posts
$threeNewestUsers = $database1->select("SELECT * FROM users ORDER BY created_at DESC LIMIT 3");
$threeLatestPosts = $database2->select("SELECT * FROM blog_posts ORDER BY created_at DESC LIMIT 3");
return [
"new_users" => $threeNewestUsers,
"new_posts" => $threeLatestPosts,
];
}
}
http://andyfleming.com/configuring-multiple-database-connections-in-lumen-without-facades/
.env
文件实现这个目标。有任何解决方案吗..?@plcosta - Ritesh