Laravel 5l多个数据库连接

时间:2019-02-15 15:33:53

标签: laravel

我需要在2个地方保存数据库连接信息吗?如果执行以下操作,则连接正常。如果删除任何一个文件的数据,将无法连接。

config / databases.php文件

    'blah_1' => [
        'driver' => 'mysql',
        'host'      => env('DB_HOST’,’1.1.1.1’),
        'port'      => env('DB_PORT','3306'),
        'database'  => env('DB_DATABASE’,’someDB_1’),
        'username'  => env('DB_USERNAME’,’someUser_1’),
        'password'  => env('DB_PASSWORD’,’somePass_1’),
    ],

    'blah_2' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST_SECOND’,’2.2.2.2’),
        'port'      => env('DB_PORT_SECOND','3306'),
        'database'  => env('DB_DATABASE_SECOND’,’someDB_2’),
        'username'  => env('DB_USERNAME_SECOND’,’someUser_2’),
        'password'  => env('DB_PASSWORD_SECOND’,’somePass_2’),
    ],

.env文件:

DB_CONNECTION=blah_1
DB_HOST=1.1.1.1
DB_PORT=3306
DB_DATABASE=someDB_1
DB_USERNAME=someUser_1
DB_PASSWORD=somePass_1

DB_CONNECTION_SECOND=blah_2
DB_HOST_SECOND=2.2.2.2
DB_PORT_SECOND=3306
DB_DATABASE_SECOND=someDB_2
DB_USERNAME_SECOND=someUser_2
DB_PASSWORD_SECOND=somePass_2

2 个答案:

答案 0 :(得分:3)

简短的回答是“否”。您只需要在config/databases.php中使用它。 .env文件将覆盖其他环境中的设置,而无需更新配置文件。

例如,在您的本地环境中,您的凭据很可能与生产环境不同。您不想在本地更新config/databases.php,并提醒自己不要推送文件。

但是,即使将连接从.env文件中删除,连接仍然可以使用。它将默认使用env()中第二个参数的值。

答案 1 :(得分:0)

类似于const getReactResults = () => axios.get(API_URL).then(res => res.data.items.map(({ name, url }) => ({ name, url })) ); class Rel extends React.Component { state = { results: [] }; componentDidMount() { getReactResults().then(results => { this.setState({ results }); }); } render() { return ( <div> <ul> {this.state.results.map((item, i) => ( <li key={i}>{item.name}</li> ))} </ul> </div> ); } }

以及以下方面的良好解释: https://stackoverflow.com/questions/31847054/how-to-use-multiple-database-in-laravel