前提・実現したいこと
Laravelで投稿機能を作っております。
削除や投稿はできたのですが。投稿の更新ができずにいます。
モーダルを利用して編集→更新をしたいです。
発生している問題・エラーメッセージ
つぶやきを編集して確定ボタンを押してもトップページに更新内容が反映されない。 ただモーダルの中に編集内容は反映されている。
該当のソースコード
Controller
1//投稿編集画面 2 public function edit($id) 3 { 4 $post = \DB::table('posts') 5 ->where('id', $request->id) 6 ->get(); 7 return view('top', compact('post')); 8 } 9 10 11 //投稿削除 12 public function delete(Request $request) 13 { 14 \DB::table('posts')->where('id', $request->id)->delete(); 15 return redirect('/top'); 16 } 17 18 19 //投稿更新 20 public function postsupdate(Request $request, Post $post) 21 { 22 $id = $request->input('id'); 23 $up_post = $request->input('upPost'); 24 $up_post->post = $request->post; 25 $up_post->fill($request->all())->save(); 26 27 $post = \DB::table('posts') 28 ->where('id', $request->id) 29 ->update( 30 ['post' => $up_post] 31 ); 32 33 return redirect('/top')->with('warning', '編集完了'); 34 }
view
1@foreach ($list as $list) 2@if ($list->user->id === Auth::user()->id) 3 <tr class="if"> 4 <td class="edit"> 5 <!--編集ボタン--> 6 <a data-toggle="modal" data-target="#testModal"><input class="edit" type="image" src="images/edit.png"></a> 7 </td> 8 <!--削除ボタン--> 9 <td class=delete> 10 <form method="post" action="/post/delete/{id}"> 11 {{ csrf_field() }} 12 {{ method_field('delete') }} 13 <input type="hidden" name="id" value="{{$list->id}}"> 14 <a onclick="return confirm('このつぶやきを削除します。よろしいでしょうか?')"><input class="image btn-dell" type="image" src="images/trash_h.png" value="send"></a> 15 </form> 16 </td> 17 </tr> 18 @endif 19 @endforeach 20<!--読み込み--> 21 <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> 22 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> 23 <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> 24 25 <!-- モーダル中身--> 26 <div class="modal fade" id="testModal" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true"> 27 <div class="modal-dialog"> 28 <div class="modal-content"> 29 <div> 30 {!! Form::open(['url' => 'top','method'=>'get','route'=>'posts.postsupdate']) !!} 31 {!! Form::hidden('id', $post->id) !!} 32 {{ csrf_field() }} 33 {{ method_field('patch') }} 34 {!! Form::textarea('post', $list->post,null,['class' => 'form-control','cols'=>'30','rows'=>'10','maxlength'=>'150']) !!}--> 35 {!! Form::input('post', 'upPost',$post->post,['required', 'class' => 'form-control']) !!} 36 <input type="image" src="images/edit.png"> 37 {!! Form::close() !!} 38 39 </div> 40 <div class="modal-footer"> 41 <button type="button" class="btn btn-default" data-dismiss="modal">閉じる</button> 42 </div> 43 </div> 44 </div> 45<!--モーダル終了--> 46
route
1Route::group(['middleware' => 'auth'], function() { 2 Route::resource('/top', 'PostsController', ['only' => ['index', 'show', 'edit', 'update']]); 3 Route::post('/top','PostsController@createForm'); 4 Route::delete('/top','PostsController@delete');
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー