やりたい事
①他の文字列を変更した時、sortが変動しないようにしたい
例
sort name
1 ライス 1ライス
2 ラーメン → 2ラーメン
3 スープ 3コーンスープ
4 おそば 4おそば
補足:現状、何かしらの変更を加えると、sortの値が何故か増えていってしまうのです・・・
②行を削除した時、sortが繰り下げされるようにする
(1,2,3,4,5 のうち、3を削除した時、 4,5が繰り下がり、1234となるようにする)
例
sort name
1 ライス 1 ライス
2 ラーメン 2 ラーメン
3 野菜 → 3 スープ
4 スープ 4 おそば
5 おそば
テーブルのsort 1,2,3,4,5 とした時
2を更新し、4に変更した時、3が2に 4が3に、 2が4になるようにする
例
1 ライス 1 ライス
2 ラーメン 2 野菜
3 野菜 → 3 スープ
4 スープ 4 ラーメン
5 おそば 4 おそば
テーブルのsort 1,2,3,4,5 とした時
3を更新し、1に変更した時、1が2に 2が3に 3が1になるようにする
1 ライス 1 野菜
2 ラーメン 2 ライス
3 野菜 → 3 ラーメン
4 スープ 4 スープ
5 おそば 5 おそば
ソース
public function updateSort($id, $sort, $old_sort,$delete = false){
$query = $this->model ->where('sort', '>=', $sort) ->where('id', '<>', $id); if($delete === false){ $query->update(['sort'=>DB::raw('sort+1')]); }else{ $query->update(['sort'=>DB::raw('sort-1')]); }
これを使って、こんな感じで実装したいのですが、当方初心者のためもあり、
実現させたい動きになりません。
ご教授の程、宜しくお願い致します。