Laravel-如何从一个表中获取最后一条记录并更新另一个表

时间:2019-08-01 11:01:35

标签: laravel

我正在使用Laravel 5.8。我的api控制器中有此功能

$bill=new Bill();
$bill->msisdn =$msisdn;
$bill->trans_id =$transReference;
$bill->ext_id =$ref_id;
$bill->amount=$game_check->amount;
$bill->answer=$useroption;
$bill->game_code=$useresponse;
$bill->is_complete_transactions  =1;
$bill->billing_channel="Unity-7799";
$bill->save();

我还有另一个表user_response,模型类是User_Response。它具有以下字段: id,msisdn,答案,answer_code

我想从 $ bill = new Bill()获取最后一条记录,其中$ bill-> msisdn等于User_Response中的msisdn。然后使用$ bill-> answer更新User_Response中的答案。

请问我该如何实现?

1 个答案:

答案 0 :(得分:0)

因此,save()方法始终返回数据库中最近保存的数据。 如果您$bill->save() 因此最后插入的记录可以与您触发save()的对象相同。

例如,我需要在插入后从数据库中最后插入一个ID。

$bill = new Bill();
$bill->myFileds = $request->myfields;
$bill->save();
$lastInsertedId = $bill->id;
从上面的代码中可以看到

。最后插入的记录是$bill。您可以将其用于User_Repsonse

User_Response::where('msisdn',$bill->msisdn)->update(['answer'=>$bill->answer]);

你在这里