2014-11-28 1 views
0

Я пытаюсь вернуть последний обновленный идентификатор в моем приложении Laravel. У меня есть платеж, вставленный в базу данных. Когда возвращается PayPal, IPN обновит payment_status до «Refunded». Теперь после обновления необходимо вернуть идентификатор обновленного столбца. Но я получаю нуль. Вот что я пробовал.PHP: возвращает идентификатор обновленной строки в Laravel 4

первый метод:

$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; 
} 

Как я могу получить обновленный идентификатор?

+0

Является ли 'whereTxnId' ваш метод? можете ли вы показать нам, что внутри вашего метода? –

+0

Возможный дубликат [Laravel, получить последний идентификатор вставки с использованием Eloquent] (http://stackoverflow.com/questions/21084833/laravel-get-last-insert-id-using-eloquent) –

+0

Что вы подразумеваете под обновленным идентификатором ? – lagbox

ответ

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; 

    } 
0

Со вторым способом использовать

$is_updated->id

+0

Второй метод даже не обновляет БД, в то время как первый работает, но я не получаю идентификатор обновленной строки. Ты знаешь почему? – SpiritOfDragon