当我,尝试运行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}
任何帮助,将不胜感激。
提前致谢。
谢谢,
Parth Vora
我发现了这个问题。
我没有遵循包的队列配置。
https://github.com/jenssegers/laravel-mongodb#queues
只需遵循正确的指示,它就能很好地运作。
我也遇到了DB::beginTransaction()
方法的问题。以下片段解决了我的问题
$session = DB::getMongoClient()->startSession();
$session->startTransaction();
try {
// Perform actions.
$session->commitTransaction();
} catch(Exception $e) {
$session->abortTransaction();
}
感谢this answer。
BTW我使用的是MongoDB 4.0.3版,并在Laravel 5.7和5.8版上进行了测试