扩展Jenssegers/laravel-mongodb以支持事务功能
v1.0.2
2022-08-03 09:26 UTC
Requires
- jenssegers/mongodb: ^3.8
README
介绍
Jensseger的laravel-mongodb扩展包在Laravel开发者中非常受欢迎,但它缺少事务功能。mongoDB 4.x支持多文档事务。因此,这个包扩展了Jenssegers/laravel-mongodb以支持事务。
- mongoDB事务基于mongoDB4.x副本集环境。mongoDB
- 此包依赖于Jenssegers/laravel-mongodb,因此需要先安装。
安装
关于包的使用,需要替换Jenssegers/laravel-mongodb
通过composer安装
composer require imanrjb/laravel-mongodb
Laravel
//Jenssegers\Mongodb\MongodbServiceProvider::class, ImanRjb\Mongodb\MongodbServiceProvider::class
Lumen
//$app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->register(ImanRjb\Mongodb\MongodbServiceProvider::class); $app->withEloquent();
Eloquent
Eloquent仅扩展事务相关内容,因此直接替换Jenssegers/laravel-mongodb
use ImanRjb\Mongodb\Eloquent\Model; class User extends Model {}
use ImanRjb\Mongodb\Eloquent\Model; class MyModel extends Model { protected $connection = 'mongodb'; }
有关更多Eloquent文档,请参阅 (https://laravel.net.cn/docs/eloquent)
用法
DB::connection('mongodb')->beginTransaction(); try { User::insert($userData); UserInfo::insert($userInfoData); DB::connection('mongodb')->commit(); } catch (\Exception $e) { DB::connection('mongodb')->rollBack(); throw $e; }