从空值 Yii2 创建默认对象

Creating default object from empty value Yii2

使用 yii2 尝试进行支付成功回调。回调工作,但我需要对订单进行更改。在我的 common/congig/main.php:

'successCallback' => function($invoice) {
    $order = \common\models\Checkout::findOne($invoice->order_id);
    $order->payment_status = 1;
    $order->update();
}

$发票->order_id;收到当前订单 ID,我需要更改结帐模式的付款状态。

更新:

我能以某种方式运行递归吗?例如,如果我有多个记录具有一个 ID?

您的代码中的问题是 findOne() 需要列的名称来比较值,在本例中为 Checkout 的 ID 列。

假设它是 order_id 就像在发票 table 中一样。

代码将是这样的:

'successCallback' => function($invoice) {
    $order = \common\models\Checkout::findOne(['order_id' => $invoice->order_id]);
    $order->payment_status = 1;
    $order->update();
}

如果名称不同,请将 'order_id' 替换为结帐 ID 列。

更新 要更新多条记录,您可以这样做:

'successCallback' => function($invoice) {
    \common\models\Checkout::updateAll(['payment_status'=>1],['order_id' => $invoice->order_id]);
}

在测试此代码之前进行数据库备份。