Laravel 5.6更新数据透视表列而不更新现有值

时间:2018-08-15 16:20:07

标签: php laravel eloquent pivot-table

我正在使用此代码更新ExisitingPivot,并且工作正常。

这是我到目前为止所拥有的:

auth()->user()->Formations()->updateExistingPivot($formation->id, array(
  'score' => $score, 
  'temps_quiz' => $temps, 
  'date_sortie' => \Carbon\Carbon::now(), 
  'tentative' => $tentative)
);

在使用attach插入第二行之后,我想在最后一个数据透视行上进行更新,但是它会更新两行。 我使用了last(),但是它的工作量很少。

有人可以建议我在哪里犯错吗?

1 个答案:

答案 0 :(得分:0)

updateExistingPivot()函数将使用给定的id更新所有行,如果要自定义更新,可以使用雄辩的查询,如:

auth()->user()->Formations()->where('formation_id', $formation->id)->last()
    ->update( array(
             'score' => $score, 
             'temps_quiz' => $temps, 
             'date_sortie' => \Carbon\Carbon::now(), 
             'tentative' => $tentative ));