Laravel 框架在数据库读写分离后强制使用主库获取数据

使用 model 强制获取主库数据

AMode::onWriteConnect()->get();

使用 DB 方法获取主库数据

  • 方法一:
    DB::table('a')->lock()->get();
  • 方法二:
    $sql = 'select * from a';
    DB::select($sql, [], false);
  • 方法三:
    #在 config/database.php 配置文件里面配置读库
    'write' => [
            'driver'    => 'mysql',
            'host'      => env('DB_WRITE_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],
    #手动链接主库查询
    DB::connection('write')->table('a')->get();
  • 方法四(仅供参考):
    $pdo = DB::connection()->getPdo();
    $data=DB::connection()->setPdo($pdo)->table('a')->get();
  • 方法五:
    $sql = 'select * from a';
    DB::selectFromWriteConnection($sql);
附言 1  ·  10个月前

注意:如果在事务中获取数据,上述的第三种方法是没有办法获取事务提交前的数据更新结果的。

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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