laravelで管理画面を作成し、
Wordpressのようにテーブルのセルを入れ替えてDBにデータを更新させたいのですが、
管理画面(admin/index.blade.php)からバックエンド側にデータを渡して保存するとなると、
updateコントローラーでリクエストを受け取ってDBにデータを更新はできないでしょうか?
postテーブルのカラム
---追記---
postテーブルに
[id, title, body, file_name, new_id]があります。
送信するたびに、並び替えた後のidを新しくnew_idカラムに更新して、new_idカラムを基準に並び替えたいと思っています。
まずはnew_idカラムを更新させたいのですが、送信してもDBのnew_idカラムに反映がないということです。
index
1@extends('admin.layouts.app') 2 3@section('content') 4<div class="row"> 5 @include('admin.sidebar') 6 <div class="col"> 7 <div class="card mt-4 mr-4"> 8 <table class="table"> 9 <thead class="black white-text"> 10 <tr> 11 <th scope="col">id</th> 12 <th scope="col">タイトル</th> 13 <th scope="col">本文</th> 14 <th scope="col">画像</th> 15 <th scope="col">日付</th> 16 <th scope="col"></th> 17 </tr> 18 </thead> 19 <tbody id="tbody"> 20 @foreach($posts as $post) 21 <tr id="{{ $post->id }}"> 22 <th scope>{{ $post->id }}</th> 23 <td> 24 {{ $post->title }} 25 </td> 26 <td> 27 {{ $post->body }} 28 </td> 29 <td> 30 <img src="data:image/png;base64, {{ $post->file_name }}" style="width:50px; height:30px;"> 31 </td> 32 <td> 33 {{ $post->created_at->format('m/d') }} 34 </td> 35 <td> 36 <a href="{{ route('posts.show', ['post' => $post]) }}">詳細</a> 37 </td> 38 </tr> 39 @endforeach 40 </tbody> 41 </table> 42 </div> 43 <form methods="post" action="{{ route('admin.update') }}"> 44 @csrf 45 <input type="hidden" id="new_id" name="new_id"> 46 <button id="submit">送信</button> 47 </form> 48 </div> 49</div> 50@endsection 51 52@section('javascript') 53<script> 54$('#tbody').sortable({ 55 // 並び替えた後にイベント発生 56 update: function(event, ui){ 57 // 並び替えた順番を返す 58 var updated = $(this).sortable("toArray"); 59 // hiddenタグ 60 var new_id = document.getElementById('new_id'); 61 // hiddenのvalueに順番を入れる 62 new_id.value = updated; 63 } 64}) 65</script> 66@endsection
laravel
1 public function update(Request $request, Post $post) 2 { 3 $post->new_id = $request->new_id; 4 $post->save(); 5 return redirect()->route('admin.index'); 6 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/26 00:27
2020/08/26 00:31
2020/08/26 00:37
2020/08/26 00:41
2020/08/26 00:42
2020/08/26 00:43
2020/08/26 00:47
2020/08/26 00:48
2020/08/26 00:51
2020/08/26 00:53
2020/08/26 01:06
2020/08/26 01:12
2020/08/26 01:21 編集
2020/08/26 01:32 編集
2020/08/26 01:36