実現させたい事
①リスト(テーブル)にある、SORTカラムに入っている値を、新しくデータを登録した時に
既存のデータよりも順位を+1して登録したい
②元々入っているデータを更新した時、数字に変動がない限り、順位を維持したい
③既存のデータを更新し、元よりも低い順位(5位ー>2位)などにした時に
2位よりも前の2~ の順位を+1させたい
④既存のデータを更新し、元よりも高い順位(2位ー>6位)などにした時に
5位より手前(3~5位)の順位をマイナスさせたい
⑤現状エラーになってしまっていて、$old_sort を除外させないと反映されないみたいな事を言われております。もし下記のソースだけで分かる方いらしたら、教えていただきたいです・・。
※下記コードだとエラーになるため、おそらく書き方自体も違う可能性が高いです。
ご教示いただけると嬉しいです・・・。
宜しくお願い致します。
コード
public function updateSort($id, $sort, $old_sort,$delete = false){ $query = $this->model ->where('sort', '>=', $sort) ->where('id', '<>', $id); if($id === true){ $query->update(['sort'=>DB::raw('sort+1')]); } if($delete === false){ $query->update(['sort'=>DB::raw('sort+1')]); }else{ $query->update(['sort'=>DB::raw('sort-1')]); } if($old_sort === false){ $query->update(['sort'=>DB::raw('sort+1')]); }else{ $query->update(['sort'=>DB::raw('sort-1')]); } if($sort === false){ $query->update(['sort'=>DB::raw('sort+1')]); }else{ $query->update(['sort'=>DB::raw('sort-1')]); } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。