zhijia / laravel-mongodb-transactions
扩展了Jenssegers/laravel-mongodb,支持事务功能
Installs: 2 184
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- jenssegers/mongodb: ^3.4
Requires (Dev)
- php: >=7.2
This package is auto-updated.
Last update: 2025-03-01 00:32:37 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 文档见 (http://laravel.com/docs/eloquent)
使用
DB::beginTransaction(); try { User::insert($userData); UserInfo::insert($userInfoData); DB::commit(); } catch (\Exception $e) { DB::rollBack(); throw $e; }