前提
vue.jsで画面をlaravelでバックエンドの処理を行う
サービスを開発しています。
画面の初期表示時にDBの検索結果を配列にして
画面のbladeファイルからjsonでvue.jsのコンポーネントに送って表示しています。
vue.js上のボタンを押下したらlaravelから受け取った配列の値を
laravelにPOSTしてDBを更新したいです。
実現したいこと
- vue.js上のボタンを押したら値が送られ、その値を使ってDBを更新する
発生している問題・エラーメッセージ
該当のソースコード
bladeファイル
1@include('header') 2<main class="l-main"> 3 <div class="l-form"> 4 <div id="app"> 5 <panel-component :comeback-accounts='@json($comebackAccounts)'></panel-component> 6 </div> 7 </div> 8</main> 9 10@include('footer')
vue,jsファイル
1<template> 2 <div class="c-textbox__header u-text__title">凍結解除されたアカウント 3 <div v-if="comebackAccounts && comebackAccounts.length"> 4 <div v-for="comeback in comebackAccounts"> 5 <table class="c-table"> 6 <tr> 7 <th>アカウント名</th> 8 <td v-model="twitter_screen_name">{{ comeback.twitter_screen_name }}</td> 9 </tr> 10 </table> 11 </div> 12 <el-button v-on:click.once="onPost(comeback.twitter_screen_name)" type="info" plain>自動機能を再開する</el-button> 13 </div> 14 </div> 15</template> 16 17<script> 18export default { 19 props: { 20 comebackAccounts: Array, 21 }, 22 data() { 23 return {}; 24 }, 25 methods: { 26 onPost: function () { 27 axios.post("/comeback", { 28 twitter_screen_name: this.twitter_screen_name, 29 },).then((response) => { 30 // ちゃんと送信できたか確認用 31 console.log(response); 32 }) 33 .catch((err) => { 34 console.log(err); 35 }); 36 }, 37 }, 38} 39</script> 40
vue.jsから値を受け取るlaravel
1 2 public function comeback(Request $request){ 3 4 $twitter_screen_name = $request->input('$twitter_screen_name'); 5 Log::debug($twitter_screen_name); 6 DB::table('twitter_tokens') 7 ->where('twitter_screen_name', $twitter_screen_name) 8 ->update(['suspended_flg' => SuspendedFlg::getValue('正常')]); 9 return redirect('/home')->with('c_flash', '凍結解除しました!'); 10 }
試したこと
laravelからJSONで受け取った配列の値をlaravelにPOSTすることは可能でしょうか?
補足情報(FW/ツールのバージョンなど)
Laravel v8.83.23
PHP v7.4.18
"vue": "^3.2.36",
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/09 07:03