gpt4 book ai didi

php - 从 Laravel 4 中的事务中返回数据

转载 作者:行者123 更新时间:2023-12-02 05:50:48 26 4
gpt4 key购买 nike

我有以下代码片段,但似乎无法正常工作。

$paymentGatewayTransaction = $this->processTransaction($data);
DB::connection('new_db')->transaction(function () use ($paymentGatewayTransaction) {
//Performing all DB transactions here to insert Order Information.
if ($paymentGatewayTransaction['Status'] == "APPROVED")
return Response::json(array('Status' => 'Success'), '200'); else
return Response::json(array('Status' => 'Error'), '200');
});

function processTransaction($data) {
//Process Gateway Transaction
if ($gatewayWasSuccessfull)
return array('Status' => 'APPROVED'); else
return array('Status' => 'DECLINED');
}

返回 Response::json() 行 57似乎根本没有任何影响。响应永远不会到达浏览器。

如果我从行 4 移动 if 条件直通 8在闭包函数之外,它工作正常。

作为解决方法,我最终不得不执行以下操作。
$paymentGatewayTransaction = $this->processTransaction($data);
$orderObj = "";
DB::connection('new_db')->transaction(function () use ($paymentGatewayTransaction, &$orderObj) {
//Performing all DB transactions here to insert Order Information.
// **$orderObj is set here**
});

if ($paymentGatewayTransaction['Status'] == "APPROVED")
return Response::json(array('Status' => 'Success', 'Order' => $orderObj->id), '200'); else
return Response::json(array('Status' => 'Error'), '200');

function processTransaction($data) {
//Process Gateway Transaction
if ($gatewayWasSuccessfull)
return array('Status' => 'APPROVED'); else
return array('Status' => 'DECLINED');
}

创建对象 $orderObj在闭包之外,并通过引用事务将其作为变量,以便在闭包函数之外使用它。这可以更简单还是这是使用它的方法?

最佳答案

您可以在变量中分配事务关闭的返回值,如下所示:

$paymentGatewayTransaction = $this->processTransaction($data);
$var = DB::connection('new_db')->transaction(function () use ($paymentGatewayTransaction) {
//Performing all DB transactions here to insert Order Information.
if ($paymentGatewayTransaction['Status'] == "APPROVED")
return Response::json(array('Status' => 'Success'), '200'); else
return Response::json(array('Status' => 'Error'), '200');
});
return $var;

然后你可以使用 $var 返回。

关于php - 从 Laravel 4 中的事务中返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17178011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com