一个简单多库配置

在根目录找到.env文件,因为我的库在同一ip下,所以我直接定义一个库名

dbname1

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=test1
    DB_USERNAME=root
    DB_PASSWORD=1234
     #dbname2
    DB_DATABASE_1=test2

然后找到根目录下config/databses.php

dbname1

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'test1'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', '1234'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => 'sys_',
        'strict' => true,
        'engine' => null,
    ],

    #dbname2
    'mysql_test2' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE_1', 'test2'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', '1234'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => 'sys_',
        'strict' => true,
        'engine' => null,
    ],

然后咱们再创建个TaskModel进行测试
首先引用use Illuminate\Support\Facades\DB;

    #创建个show1方法 #dbname1
    public function show1()
       {
            $show = DB::table('users')->get();
            return show;
       }

    #然后创建个show2方法 dbname2
    public function show2()
       {
            $show = DB::connection('mysql_test2')->table('users')->get();
            return show;
       }

最后我们在controller实例化model

     $model=new Task(); //实例化model
     $data = $model -> show1(); //调用model层中方法

最后补充一下,我们结果集是对象:
我们可以通过->get()->map(function ($value) {return (array)$value;})->toArray();让结果集变成数组格式

本作品采用《CC 协议》,转载必须注明作者和本文链接
附言 1  ·  6年前

结果集转化,你也可以封一个这样的方法,进行格式转化
public function objToArr($object) {
//先编码成json字符串,再解码成数组
return json_decode(json_encode($object), true);
}

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2

可以在model里定义connection

6年前 评论

@lovecn 是的,直接 protected $connection='对应的库名'

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!