代码基于我上一个问题上的Lvkz posted,它解决了我遇到的更大问题。不过,我需要帮助找到一种方法来避免重复和错误的数字序列。根据展示位置移动用户排名表
$winner_ranking = $winner->getRankings()->where('ranklist_id', $ranklist_id)->first();
$loser_ranking = $loser->getRankings()->where('ranklist_id', $ranklist_id)->first();
if ($winner_ranking->placement > $loser_ranking->placement) {
$rankings = ClubRanking::where('placement', '>', $loser_ranking->placement)
->where('ranklist_id', '=', $ranklist_id)
->increment('placement', 2);
$winner_ranking->placement = $loser_ranking->placement;
$winner_ranking->save();
$loser_ranking->placement = $loser_ranking->placement + 1;
$loser_ranking->save();
}
用户A =放置:1个
用户B =放置:2
如果用户B战胜用户A则数字序列将如下所示
用户B =放置:1个
用户A =放置:2
用户C =放置:4
用户d =放置:5
用户E =安置:6
另外一个快速的注意,问题仍然持续但以不同的方式,如果我是到增量更改为1,而不是2
什么是$ ranklist_id? –
$ ranklist_id是一个GET路由参数,所以本质上它只是我们想要更改内容的排名列表的ID。 (澄清:有几个ranklists。) – Classified