質問編集履歴

4

変更

2020/08/26 00:45

投稿

courage23
courage23

スコア8

test CHANGED
@@ -1 +1 @@
1
- laravelのデータ保存
1
+ laravelのsortableで並び替え
test CHANGED
@@ -6,7 +6,19 @@
6
6
 
7
7
  updateコントローラーでリクエストを受け取ってDBにデータを更新はできないでしょうか?
8
8
 
9
- 方法はありますでしょうか?
9
+ postテーブルカラム
10
+
11
+
12
+
13
+ ---追記---
14
+
15
+ postテーブルに
16
+
17
+ [id, title, body, file_name, new_id]があります。
18
+
19
+ 送信するたびに、並び替えた後のidを新しくnew_idカラムに更新して、new_idカラムを基準に並び替えたいと思っています。
20
+
21
+ まずはnew_idカラムを更新させたいのですが、送信してもDBのnew_idカラムに反映がないということです。
10
22
 
11
23
 
12
24
 

3

追加

2020/08/26 00:45

投稿

courage23
courage23

スコア8

test CHANGED
File without changes
test CHANGED
@@ -128,6 +128,14 @@
128
128
 
129
129
  var updated = $(this).sortable("toArray");
130
130
 
131
+      // hiddenタグ
132
+
133
+    var new_id = document.getElementById('new_id');
134
+
135
+ // hiddenのvalueに順番を入れる
136
+
137
+ new_id.value = updated;
138
+
131
139
  }
132
140
 
133
141
  })

2

追加

2020/08/26 00:25

投稿

courage23
courage23

スコア8

test CHANGED
File without changes
test CHANGED
@@ -148,7 +148,7 @@
148
148
 
149
149
  $post->save();
150
150
 
151
-      return redirect()->route('posts.index');
151
+      return redirect()->route('admin.index');
152
152
 
153
153
  }
154
154
 

1

追加

2020/08/26 00:22

投稿

courage23
courage23

スコア8

test CHANGED
File without changes
test CHANGED
@@ -7,3 +7,149 @@
7
7
  updateコントローラーでリクエストを受け取ってDBにデータを更新はできないでしょうか?
8
8
 
9
9
  他の方法はありますでしょうか?
10
+
11
+
12
+
13
+ ```index
14
+
15
+ @extends('admin.layouts.app')
16
+
17
+
18
+
19
+ @section('content')
20
+
21
+ <div class="row">
22
+
23
+ @include('admin.sidebar')
24
+
25
+ <div class="col">
26
+
27
+ <div class="card mt-4 mr-4">
28
+
29
+ <table class="table">
30
+
31
+ <thead class="black white-text">
32
+
33
+ <tr>
34
+
35
+ <th scope="col">id</th>
36
+
37
+ <th scope="col">タイトル</th>
38
+
39
+ <th scope="col">本文</th>
40
+
41
+ <th scope="col">画像</th>
42
+
43
+ <th scope="col">日付</th>
44
+
45
+ <th scope="col"></th>
46
+
47
+ </tr>
48
+
49
+ </thead>
50
+
51
+ <tbody id="tbody">
52
+
53
+ @foreach($posts as $post)
54
+
55
+ <tr id="{{ $post->id }}">
56
+
57
+ <th scope>{{ $post->id }}</th>
58
+
59
+ <td>
60
+
61
+ {{ $post->title }}
62
+
63
+ </td>
64
+
65
+ <td>
66
+
67
+ {{ $post->body }}
68
+
69
+ </td>
70
+
71
+ <td>
72
+
73
+ <img src="data:image/png;base64, {{ $post->file_name }}" style="width:50px; height:30px;">
74
+
75
+ </td>
76
+
77
+ <td>
78
+
79
+ {{ $post->created_at->format('m/d') }}
80
+
81
+ </td>
82
+
83
+ <td>
84
+
85
+ <a href="{{ route('posts.show', ['post' => $post]) }}">詳細</a>
86
+
87
+ </td>
88
+
89
+ </tr>
90
+
91
+ @endforeach
92
+
93
+ </tbody>
94
+
95
+ </table>
96
+
97
+ </div>
98
+
99
+ <form methods="post" action="{{ route('admin.update') }}">
100
+
101
+ @csrf
102
+
103
+ <input type="hidden" id="new_id" name="new_id">
104
+
105
+ <button id="submit">送信</button>
106
+
107
+ </form>
108
+
109
+ </div>
110
+
111
+ </div>
112
+
113
+ @endsection
114
+
115
+
116
+
117
+ @section('javascript')
118
+
119
+ <script>
120
+
121
+ $('#tbody').sortable({
122
+
123
+ // 並び替えた後にイベント発生
124
+
125
+ update: function(event, ui){
126
+
127
+ // 並び替えた順番を返す
128
+
129
+ var updated = $(this).sortable("toArray");
130
+
131
+ }
132
+
133
+ })
134
+
135
+ </script>
136
+
137
+ @endsection
138
+
139
+ ```
140
+
141
+ ```laravel
142
+
143
+ public function update(Request $request, Post $post)
144
+
145
+ {
146
+
147
+ $post->new_id = $request->new_id;
148
+
149
+ $post->save();
150
+
151
+      return redirect()->route('posts.index');
152
+
153
+ }
154
+
155
+ ```