コードは以前の質問で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();
}
ユーザ =配置:1
ユーザB =配置:2
場合は、ユーザーB ユーザA上勝利次のように数列が見えます
またユーザB =配置:1
ユーザ =配置:2
ユーザC =配置:4
ユーザD =配置:5
ユーザーE =配置:6
簡単なメモ、問題はまだを持続するが、私は代わりに2
'$ ranklist_id'とは何ですか? –
$ ranklist_idはGETルートパラメータなので、本質的にはそれを変更したいランクリストのIDです。 – Classified