2

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

[Symfony\Component\Debug\Exception\FatalErrorException]
Call to a member function beginTransaction() on null

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

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

https://github.com/jenssegers/laravel-mongodb

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

https://github.com/jenssegers/laravel-mongodb/issues/964

日志中的详细错误:

[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}  

任何帮助,将不胜感激。

提前致谢。

谢谢,

帕思沃拉

4

3 回答 3

3

我发现了这个问题。

我没有遵循包的队列配置。

https://github.com/jenssegers/laravel-mongodb#queues

只需遵循正确的说明,它就可以很好地工作。

于 2016-11-12T17:19:19.057 回答
3

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

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

感谢这个答案


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

于 2019-03-21T07:55:21.290 回答
0

我研究并意识到它与 MySQL/MariaDB 被“杀死以释放内存”有关。所以我sudo shutdown -r在 cent os rhel 7 上重新启动了服务器,并使用sudo systemctl restart mariadb.

于 2020-06-09T21:15:06.647 回答