Laravel 5.3 在队列:work artisan 命令的 null 错误上获取 beginTransaction()

Par*_*ora 3 jenssegers-mongodb laravel-5.3

当我尝试运行php artisanqueue:work命令时,出现此错误:

[Symfony\Component\Debug\Exception\FatalErrorException]
Call to a member function beginTransaction() on null
Run Code Online (Sandbox Code Playgroud)

我已经检查了互联网上几乎所有有关此错误的可用帮助,但没有得到任何解决方案。

我不确定这是否与我正在使用的这个包有关。

https://github.com/jenssegers/laravel-mongodb
Run Code Online (Sandbox Code Playgroud)

我猜可能是因为其他人也遇到了这个错误,但不幸的是没有任何回复。

https://github.com/jenssegers/laravel-mongodb/issues/964
Run Code Online (Sandbox Code Playgroud)

日志中的详细错误:

[2016-11-12 20:18:45] local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to a member function beginTransaction() on null' in C:\wamp\www\blog\vendor\laravel\framework\src\Illuminate\Database\Connection.php:611
Stack trace:
#0 {main}  
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

提前致谢。

谢谢,

帕斯沃拉

Sal*_*lam 7

我也遇到了方法的问题DB::beginTransaction()。以下片段解决了我的问题

$session = DB::getMongoClient()->startSession();
$session->startTransaction();
try {
    // Perform actions.
    $session->commitTransaction();
} catch(Exception $e) {
    $session->abortTransaction();
}
Run Code Online (Sandbox Code Playgroud)

感谢这个答案


顺便说一句,我正在使用 MongoDB 版本 4.0.3 并在 Laravel 版本 5.7 和 5.8 上进行测试