ご覧いただきありがとうございます。
困っているため、是非アドバイスをお願い致します。
実現したいこと
レコード一覧画面で、
コントロールで、削除→リダイレクトの後、
削除したレコードがそのまま表示されてしまっています。
リロードすると、そのレコードが削除されていることが確認できました。
(また、DBでもレコードが削除されていることが確認できました。)
リダイレクトしているのに、レコードがそのまま表示されてしまう原因はなんなのか
ご教授いただきたいです。
※ちなみにですが、フラッシュメッセージは「削除しました」と表示されています。
該当のソースコード
web.php
1Route::resource('/MyPage', MyPageController::class)->middleware(['auth', 'verified']);
MyPageController
12 // 削除処理→リダイレクト処理 3 public function destroy($id) 4 { 5 try { 6 MypageInfo::where('id', $id)->delete(); 7 8 return to_route('MyPage.index') 9 ->with([ 10 'message' => 'レコードを削除しました。' 11 ]); 12 13 } catch(\Exception $e) { 14 // TODO 15 } 16 } 17 18 // redirect 後のページを表示するために呼び出されるメソッド 19 public static function index() 20 { 21 \Log::debug('index'); 22 try { 23 $user = User::select('id', 'name')->where('id', Auth::id())->get(); 24 $rec = Auth::user()->myPageInfos; 25 26 // レコードがあれば Show ページ 27 if(count($rec) != 0) { 28 $path = 'MyPage/ShowMyPage'; 29 // レコードがなければ Create ページ 30 } else { 31 $path = 'MyPage/CreateMyPage'; 32 } 33 \Log::debug($rec); // 削除された後のレコードが表示されていた。 34 35 return Inertia::render($path, [ 36 'user' => $user, 37 'rec' => $rec 38 ]); 39 } catch(\Exception $e) { 40 // TODO: catch処理 41 } 42 } 43
削除処理の起動画面・リダイレクトの画面
Show.vue
1let props = defineProps(['user', 'rec']) 2 3<Record v-show="activeNum == 5" :rec="props.rec" :myId="props.user[0].id" :authUser="$page.props.auth.user.id"></Record>
※Show.vue の中にあるコンポーネント
ここの内容が
Record.vue
1let props = defineProps(['rec', 'myId', 'authUser']) 2 3<table v-for="rec in recs" :key="rec.id" class="mb-3 table-auto w-full text-left whitespace-no-wrap"> 4 ... 5</table> 6 7
補足情報(FW/ツールのバージョンなど)
Laravel10 / Vue3 / Inertia1.0 / Ziggy を使用しています。
0 コメント