質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

1回答

2187閲覧

laravel vue.js component フォームのバリデーション後も値を保存しておきたい

neginattofan

総合スコア66

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2020/06/17 08:54

laravelのbladeテンプレートのold()ヘルパー関数のような、

元々データがあれば表示して、変更した場合にはその値を保持しておくようにしておきたいです。

blade

1value="{{ old('name', $user->name}}

下のコードだと、laravelのコントローラーからjson形式で渡されたデータを表示することはできますが、バリデーション後にも入力値を保ってくれません。

component

1<input type="text" name="name" :value="namedata"/>

下のコードだと、バリデーション後にも入力値を保ってくれますが、laravelのコントローラーからjson形式で渡されたデータを表示することができません。

component

1<input type="text" name="email" v-model="email">

どうしたらいいですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自分は同じような時、Session::getOldInput()を使ってblade側から渡してます。(vueに送るんでjson_encodeも)

コンポーネント側ではpropsで受け取り、created()の中でdata()で用意している箱に入れる。

といった感じでしょうか?

参考

下のコードは自分が以前使っていたものです。配列使用になっていたりするので、参考程度に。

blade

1<tag-new :old_tags="{{ json_encode(Session::getOldInput()) }}"></tag-new>

component

1..省略 2<input type="hidden" name="tags" :value="tags"> 3..省略 4props: ['old_tags'], 5data() { 6 return { 7 tags: [] 8 } 9 }, 10 created() { 11 if(this.old_tags.tags) { 12 let list = this.old_tags.tags.split(',') 13 list.forEach(element => { 14 this.tags.push(element) 15 }); 16 } 17 },

投稿2020/09/12 00:39

tenlife

総合スコア70

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問