两个数据库连接在laravel中

时间:2017-03-08 11:57:37

标签: laravel-5

如何连接laravel-5中的两个数据库以及如何从db获取数据。

我知道两件事

config / database 中设置如下。

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'larashop'),
        'username'  => env('DB_USERNAME', 'root'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

 'mysql2' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'larashop2'),
            'username'  => env('DB_USERNAME', 'root'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

2 个答案:

答案 0 :(得分:1)

使用Query,您可以在查询生成器上定义连接:

$users = DB::connection('mysql2')->select('your query');

使用Eloquent 您还可以定义在Eloquent模型中使用的连接!

<?php

class SomeModel extends Eloquent {

    protected $connection = 'mysql2';

}

您还可以通过setConnection方法在运行时定义连接。

<?php

class SomeController extends BaseController {

    public function someMethod()
    {
        $someModel = new SomeModel;

        $someModel->setConnection('mysql2');

        $something = $someModel->find(1);

        return $something;
    }

}

答案 1 :(得分:1)

我在laravel中找到了connect 2数据库的问题。

如果有任何机构希望两个人使用 2数据库,那么请将 .env 文件配置为上述建议和删除数据库配置在根。

我试过,我正在使用2个数据库。