Php Laravel mongodb交易

Php Laravel mongodb交易,php,laravel,mongodb,Php,Laravel,Mongodb,我需要在Laravel的MongoDB上使用事务 我下载了php MongoDB驱动程序1.6,并将php_MongoDB.dll复制粘贴到php/ext文件夹中 我还通过安装了php mongo库 composer require mongodb/mongodb 现在,当我尝试根据使用事务时,它不会在发生错误时回滚 $client = new Client($url); $callback = function (\MongoDB\Driver\Session $session

我需要在Laravel的MongoDB上使用事务

我下载了php MongoDB驱动程序1.6,并将php_MongoDB.dll复制粘贴到php/ext文件夹中

我还通过安装了php mongo库

composer require mongodb/mongodb
现在,当我尝试根据使用事务时,它不会在发生错误时回滚

   $client = new Client($url);
    $callback = function (\MongoDB\Driver\Session $session) use ($client) {
        $data = [
            "name" => "Tommy",
                     ];
        $collection = $client->db1->users;
        $user = $collection->updateOne(
            ['mobile' => '*'],
            ['$set' => $data],
            [$session]
        );
        $data = [
            "activate" => 1,
        ];
        $collection = $client->db1->wallets;
        $wallet1 = $collection->updateOne(
            ['_id' => 100],
            ['set' => $data],
            [$session]
        );

    };

    $session = $client->startSession();
    $transactionOptions = [
        'readConcern' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\ReadConcern::LOCAL),
        'writeConcern' => new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY, 1000),
        'readPreference' => new \MongoDB\Driver\ReadPreference(\MongoDB\Driver\ReadPreference::RP_PRIMARY),
    ];

    try{
        \MongoDB\with_transaction($session, $callback, $transactionOptions);
        return true;

    }catch (\Exception $e)
    {
        return false;
    }

MongoDB\Driver\session
中的会话类在laravel中是未知的,而该类用于MongoDB>=1.4.0。我不知道怎么了。有人能帮我吗?

寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:@Saly3301 100%同意,对于本质上相同的选择,此消息的意图比当前更改的“关闭原因”要清楚得多。这个问题基本上是说“我的代码不起作用…”,但问题中没有任何代码可以让任何人看到它为什么不起作用。过去的MCVE响应中的变化信息并不能清楚地传达这一点。这个问题基本上需要呈现被认为是有责任的代码,而这实际上重现了这个问题。如果没有这一点,在这里很难提供帮助。这些信息中有很多已经改变,旧版本更好,我很高兴我给仍在编辑问题的作者留了一份副本(但没有要求他们做的细节)。外部链接不是再现问题的可接受的发布代码点。我们这里需要一个最小的列表。您还需要生成一个最小的列表,希望这个小代码示例(作为整个应用程序的一部分)能够在不需要其他帮助的情况下向您自己强调问题。如果你没有发现它,那么其他人就会发现。只有一个小样本。@Neil Lunn我刚刚编辑了这个问题,请重新考虑。