Bas*_*saa 5 php mysql database-connection laravel eloquent
我有一个实例化的Web应用程序,它为每个实例使用不同的数据库,但使用相同的文件.
我希望我的应用程序在启动时做什么:
我试图在我的App:before()事件中执行此操作,但这不起作用,因为我的master数据库中没有会话表.如果我在database.php中的返回数组()之前执行它显然无法连接,因为它还没有正确的主数据库凭据.
我应该在哪里这样做?我应该只是禁用会话并在我的App :: before()中执行,然后启用会话吗?
经过几个小时的实验和尝试,我发现最好的选择确实是在 /app/config/database.php 文件中手动创建一个 PDO 实例,并以这种方式获取数据库凭据:
// Get instance row
if (!App::runningInConsole() && !array_key_exists('instance_found', $_ENV)) {
$conn = new PDO('mysql:dbname=instances;host=127.0.0.1', 'root', 'password');
$stmt = $conn->prepare('SELECT * FROM instances WHERE http_host=?');
$stmt->bindParam(1, $_SERVER['HTTP_HOST']);
$stmt->execute();
$instance = $stmt->fetch(PDO::FETCH_OBJ);
$conn = null;
if (!$instance) {
return Response::make('Whoops!', 404);
} else {
$_ENV['instance_found'] = true;
$database = $instance->mysql_database;
$username = $instance->mysql_username;
$password = $instance->mysql_password;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
391 次 |
| 最近记录: |