PHP:返回Laravel 4中更新行的ID

时间:2014-11-28 08:18:22

标签: php mysql laravel laravel-4

我正在尝试在Laravel应用程序中返回上次更新的ID。我有一个付款插入数据库。当PayPal退款时,IPN会将payment_status更新为"退款"。现在更新后,需要返回更新列的id。但是我变得无效了。这是我尝试过的。

第一种方法:

    $is_updated = $this->whereTxnId($ipn_array['parent_txn_id'])
    ->update(array(
        'payment_status' => $ipn_array['payment_status'],
        'refund_txn_id' => $ipn_array['txn_id']
    ));
if($is_updated) {
    return $this->id;
}

第二种方法:

$txn_id_matching = $this->whereTxnId($ipn_array['parent_txn_id']);

$txn_id_matching->payment_status = $ipn_array['payment_status'];
$txn_id_matching->refund_txn_id = $ipn_array['txn_id'];
$is_updated = $txn_id_matching->save();

if($is_updated) {
    return $txn_id_matching->id;
}

如何检索更新的ID?

2 个答案:

答案 0 :(得分:0)

使用第二种方法

$is_updated->id

答案 1 :(得分:0)

我使用以下代码修复了它。我不知道这段代码是否有效,但它解决了我的问题。

public function unlockIpnUpdate($ipn_array) {

        $is_updated = $this->whereTxnId($ipn_array['parent_txn_id'])
            ->update(array(
                'payment_status' => $ipn_array['payment_status'],
                'refund_txn_id' => $ipn_array['txn_id']
            ));

        $txn_id_matching = $this->whereTxnId($ipn_array['parent_txn_id'])->first();

        if($is_updated) {
            return $txn_id_matching->id;
        }

        return false;

    }