laravel55 操作多个数据库问题_其他语言_编程问答 问题: laravel55 操作多个数据库问题
描述:

问题:laravel5.5 使用ORM方式操作同一台MySQL机器上的多个DB时,如何优雅的设置链接?

laravel默认会链接env里配置的数据库,但是在不同的Model里我需要指定另一个数据库而不是使用这个evn里默认的;

查阅API手册后知,在Model里指定$connection即可,但是经过试验发现这个$connection的值 是需要在/config/database.php里新增一个array配置。

/config/database.php

//默认,会读取env里的mysql配置
'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
        //自己新增的
        'introduction_processQualityReport' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

经过测试发现,自己新增的这个数据key必须和我想要在Model里单独指定使用的数据库名一样,否则就报错database not xxx 之类的。

问题1
新增的那个数组introduction_processQualityReport,个人感觉value里一大堆和默认的那个没啥区别,这样写有些累赘,不知道有没有别的更优雅的方式?(这2个数据库都是在同一台MySQL上)


解决方案1:

我没有出现database配置里key必须为数据库名的问题,
database.php

1 2 下一页
上一篇laravel Passport 验证接受到了access_token怎么获取用户id?
下一篇php+redis抢购功能,并发问题
明星图片
相关文章
《 laravel55 操作多个数据库问题》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)