バックエンドをLaravel6 フロントをVue3にて作成しています。
リダイレクト後に再度getするような処理って可能なのでしょうか?
[実現したい動作]
1.vue コンポーネントで作成した投稿をaxios経由でLaravel DBへPOST
2.axios経由で送られてきた情報をLaravel DBへ保存
3.api コントローラーから投稿の表示ページへリダイレクト
4.投稿の表示ページで最新の投稿を1件表示
[問題点]
「4.投稿の表示ページで最新の投稿を1件表示」の際に1件前の投稿が表示され、画面をリロードすると最新の投稿が表示されます。
vue側の処理を色々疑ったのですが、解決に至っておらず、リダイレクト後に再度getするような処理が実現できれば解決できるのか?と考えています。
しかしその方法がわかりません。。。。
apiからのリクエスト処理は以下の様に書いています。
api.php
1Route::post('api/images', 'ImageApiController@redirect');
apiController
1 //ImageApiControllerからリダイレクトで送られてきた情報をshow.blade.phpに渡し、リターンする処理 2 public function redirect(Image $image) 3 { 4 $user = auth()->user(); 5 $image = Image::where('user_id', $user->id)->orderBy('created_at', 'desc')->first(); 6 return view('show', compact('user', 'image')); 7 }
apiからのリダイレクトを受け取り表示する処理
HomeController.php
1 //ImageApiControllerからリダイレクトで送られてきた情報をshow.blade.phpに渡し、リターンする処理 2 public function redirect(Image $image) 3 { 4 $user = auth()->user(); 5 $image = Image::where('user_id', $user->id)->orderBy('created_at', 'desc')->first(); 6 return view('show', compact('user', 'image')); 7 }
web.php
1Route::get('show','HomeController@redirect');
リダイレクト先で前回のgetデータをそのまま取得しているから、1件前の投稿が表示されているのだと考えています。
であれば、リダイレクト先で再度GETを行えば解決できるのでは?と思うのですが、そんな方法はあるのでしょうか?
方法を検索するワードでも構いません。
リダイレクト後に再度getするような処理を教えてください。
あなたの回答
tips
プレビュー