本文主要讲解“Laravel使用多个数据库的方法是什么”,简单明了,易学易懂。请跟随边肖的思路,一起学习和学习“Laravel使用多个数据库的方法是什么”!
使用 .env = 5.0(也提供基于5.5 Laravel 8的测试)
在 .env 文件
DB _ CONNECTION=mysqlDB _ HOST=127 . 0 . 0 . 1db _ PORT=3306 DB _ DATABASE=DATABASE 1db _ USERNAME=rootDB _ PASSWORD=secrettdb _ CONNECTION _ SECOND=mysqlDB _ HOST _ SECOND=127 . 0 . 0 . 1db _ PORT _ SECOND=3306 DB _ DATABASE _ SECOND=DATABASE 2db _ USERNAME _ SECOND=rootDB _ PASSWORD _ SECOND=秘密在 config/database.php 文件
mysql'=[
驱动程序'=env('DB_CONNECTION '),
host'=env('DB_HOST '),
port'=env('DB_PORT '),
database'=env('DB_DATABASE '),
username'=env('DB_USERNAME '),
password'=env('DB_PASSWORD '),],' mysql2'=[
驱动程序'=env('DB_CONNECTION_SECOND '),
host'=env('DB_HOST_SECOND '),
port'=env('DB_PORT_SECOND '),
DATABASE '=env(' DB _ DATABASE _ SECOND '),
USERNAME '=env(' DB _ USERNAME _ SECOND '),
password '=env(' db_password _ second '),],mysql2中的注意:,如果db_username和DB _ password相同,可以使用env('DB_USERNAME ')。
模式
要指定使用哪个连接,只需使用connection()方法。
schema : connection(' MySQL 2 ')-create(' some _ table ',function($ table){ 0
$ table-增量(' id '): });查询生产器
$ users=db :3360 connection(' MySQL 2 ')-select(.);模型
在模型中设置$connection变量。
classsomemodemodelxtendsignature {
受保护的$ connection=' mysql2}您也可以在运行时通过setConnection方法或on static方法定义connection :
class some controller extendsbase controller {
publicfunctionsomeMethod()
{
$ someModel=newSomeModel
$ some model-set connection(' MySQL 2 ');//非静态方法
$某物=$ some model-find(1);
$某物=some model : on(' MySQL 2 ')-find(1);//静态方法
返回$某物;
} }注意在尝试与跨数据库表建立关系时要小心!这是可以使用的,但是它可能有一些注意事项,并且取决于您拥有的数据库和数据库设置。
来自 Laravel Docs
使用多个数据库连接
当使用多个连接时,您可以通过DBfacade类上的连接方法访问每个连接。传递给connection方法的名称应该对应于config/database.php配置文件中列出的连接:
$ users=db :3360 COnnection(' foo ')-select(.);您也可以在连接实例上使用getPdo方法来访问原始的底层Pdo实例:
$ PDO=db :3360 COnnection()-getPdo();感谢您的阅读。以上是“Laravel使用多个数据库的方法是什么”的内容。学习完这篇文章,相信你对Laravel使用多个数据库的方法有了更深入的了解。具体用法需要实践验证。在这里,边肖将为大家推送更多相关知识点的文章。欢迎关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/56387.html