gpt4 book ai didi

php - Laravel 在多数据库环境中使用错误的数据库

转载 作者:行者123 更新时间:2023-11-29 07:26:19 25 4
gpt4 key购买 nike

我有一个带有本地和远程数据库的 Laravel 项目。我在 .env 中设置了这些。当尝试访问远程数据库时,Laravel 尝试使用本地数据库,但出现错误。疯狂的是,如果我删除 .env 文件中远程数据库的密码,它会抛出有关远程数据库访问被拒绝的错误。

我读到,如果辅助数据库出现错误,它将恢复到默认数据库,这看起来就像发生了什么。但是,我使用 Sequel Pro 连接到远程数据库,所以我知道我的连接良好。这是 .env:

APP_ENV=local
APP_DEBUG=true
APP_KEY=JnsC2R88qLM6GTnivxLWPKs2ds2dfplI

SITE_URL=http://health.dev

DB_REMOTE_HOST=myhost.cc
DB_REMOTE_DATABASE=databasename
DB_REMOTE_USERNAME=username
DB_REMOTE_PASSWORD=password

DB_LOCAL_HOST=localhost
DB_LOCAL_DATABASE=health
DB_LOCAL_USERNAME=homestead
DB_LOCAL_PASSWORD=secret

还有我的database.php:

 'mysql' => [
'driver' => 'mysql',
'host' => env('DB_LOCAL_HOST', 'localhost'),
'database' => env('DB_LOCAL_DATABASE', 'forge'),
'username' => env('DB_LOCAL_USERNAME', 'forge'),
'password' => env('DB_LOCAL_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'mysql_remote' => [
'driver' => 'mysql',
'host' => env('DB_REMOTE_HOST', ''),
'database' => env('DB_REMOTE_DATABASE', ''),
'username' => env('DB_REMOTE_USERNAME', ''),
'password' => env('DB_REMOTE_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],

还有我的Center模型:

<?php

namespace App;

use DB;
use Illuminate\Database\Eloquent\Model;

class Center extends Model
{
protected $table = 'Center';
private $center;

public function __construct()
{
$this->center = DB::connection('mysql_remote')->table($this->table);
}

}

最佳答案

无需传入构造函数。您可以通过模型中的 protected 属性设置连接:

class Center extends Model
{
protected $table = 'Center';

protected $connection = 'mysql_remote';

}

关于php - Laravel 在多数据库环境中使用错误的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34402335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com