salvation / laravel-mongodb-transactions
扩展 Jenssegers/laravel-mongodb 支持事务功能
dev-master
2022-05-28 14:25 UTC
Requires
- jenssegers/mongodb: 3.8.x
Requires (Dev)
- php: >=7.2
This package is auto-updated.
Last update: 2024-09-28 19:09:50 UTC
README
简介
Jensseger 的 laravel-mongodb 扩展包在 Laravel 开发者中非常流行,但它缺少事务功能。mongoDB 4.x 支持多文档事务。因此,这个包扩展了 Jenssegers/laravel-mongodb 以支持事务。
- mongoDB 事务基于 mongoDB4.x 副本集环境。 mongoDB
- 此包依赖于 Jenssegers/laravel-mongodb,因此需要先安装。
安装
关于包的使用,需要替换 Jenssegers/laravel-mongodb
Laravel
//Jenssegers\Mongodb\MongodbServiceProvider::class, Zs\Mongodb\MongodbServiceProvider::class
Lumen
//$app->register(Jenssegers\Mongodb\MongodbServiceProvider::class); $app->register(Zs\Mongodb\MongodbServiceProvider::class); $app->withEloquent();
Eloquent
Eloquent 仅扩展了与事务相关的内容,因此它直接替换了 Jenssegers/laravel-mongodb
//use Jenssegers\Mongodb\Eloquent\Model as Eloquent; use Zs\Mongodb\Eloquent\Model as Eloquent; class User extends Eloquent {}
//use Jenssegers\Mongodb\Eloquent\Model as Eloquent; use Zs\Mongodb\Eloquent\Model as Eloquent; class MyModel extends Eloquent { protected $connection = 'mongodb'; }
有关更多 Eloquent 文档,请参阅 (https://laravel.net.cn/docs/eloquent)
用法
DB::beginTransaction(); try { User::insert($userData); UserInfo::insert($userInfoData); DB::commit(); } catch (\Exception $e) { DB::rollBack(); throw $e; }