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

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

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

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

1回答

881閲覧

[nuxt.js]Vue warn: Property or method is not defined

退会済みユーザー

退会済みユーザー

総合スコア0

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2021/05/10 12:42

編集2021/05/10 13:08

Nuxt.jsとLaravelを使用して、crud機能を作成しています。
[Vue warn]: Property or method "saved" is not defined on the instance but referenced during render.というエラーが出ています。"saved"ところが,"name","content"となっている同じエラーが出ています。data{}のところにsave:'',name:'',content:''と書いたのですが、エラーが解消されませんでした。
テーブルのnameカラムの名前がもともと、titleだったのですが、nameに変更した後にこのエラーが出てしまいました。テーブルのカラム名を変更したことがエラーの元になったのでしょうか。エラーを解消できないため、アドバイスをいただきたいです。よろしくお願いします。

Nuxt.js

1<template lang="html"> 2 <div class="container"> 3 <div v-if="saved" class="alert alert-primary" role="alert"> 4 保存しました 5 6 </div> 7 <form> 8 <div class="form-group"> 9 <label for="TopicTitle">タイトル</label> 10 <input type="text" class="form-control" id="TopicTitle" v-model="name"> 11 </div> 12 <div class="form-group"> 13 <label for="TopicContent">内容</label> 14 <textarea class="form-control" id="TopicContent" rows="3" v-model="content"></textarea> 15 </div> 16 <button type="submit" class="btn btn-primary" @click.prevent="create">登録</button> 17 </form> 18 </div> 19 </div> 20</template> 21 22<script> 23import axios from 'axios'; 24export default { 25 data: function() { 26 return { 27 name:'', 28 content:'', 29 save:'', 30 }, 31 methods: { 32 create : function() { 33 axios.post('http://127.0.0.1:8000/api/posts', { 34 name: this.name, 35 content: this.content, 36 }) 37 .then((res) => { 38 console.log(res) 39 this.name = ''; 40 this.content = ''; 41 this.saved = true; 42 console.log('created'); 43 }); 44 } 45 } 46} 47

Laravel PostController.php

public function create(Request $request) { $post = new Post; $post->name = $request->name; $post->content = $request->content; $post->save(); return response()->json(['posts'=>$post],200); }

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

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

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

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

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

szk.

2021/05/11 13:23

saveかsavedでタイポしてませんか?
退会済みユーザー

退会済みユーザー

2021/05/12 11:09

返信ありがとうございます。save,savedどちらかでタイプミスしてるかということですね? savedで統一したのですが、解決しませんでした????‍♂️
guest

回答1

0

ベストアンサー

[追記]
以下で確認取れました!
axiosをgetに変更し、URLのパラメータで渡してますので、Laravel側ちょっと弄ってやってください。

普段axios使わないので詳しい原因は正直不明なんですが、
なんでかpostでこのデータの渡し方だとエラーになるので、getに変更し、URLのパラメータでテストした結果問題なく値が返ってきてます。

お試しください!

nuxt

1 axios.post('http://127.0.0.1:8000/api/posts', { 2 name: this.name, 3 content: this.content, 4 })

nuxt

1<template lang="html"> 2 <div class="container"> 3 <div v-if="save" class="alert alert-primary" role="alert"> 4 保存しました 5 6 </div> 7 <form> 8 <div class="form-group"> 9 <label for="TopicTitle">タイトル</label> 10 <input type="text" class="form-control" id="TopicTitle" v-model="name"> 11 </div> 12 <div class="form-group"> 13 <label for="TopicContent">内容</label> 14 <textarea class="form-control" id="TopicContent" rows="3" v-model="content"></textarea> 15 </div> 16 <button type="submit" class="btn btn-primary" @click.prevent="create">登録</button> 17 </form> 18 </div> 19 </div> 20</template> 21 22<script> 23import axios from "axios"; 24export default { 25 data() { 26 return { 27 name: "", 28 content: "", 29 save: "", 30 url:"" 31 }; 32 }, 33 methods: { 34 async create() { 35 await axios 36 .get( 37 url+"?name=" + 38 this.name + 39 "&content=" + 40 this.content 41 ) 42 .then((response) => { 43 console.log(response); 44 this.name = ""; 45 this.content = ""; 46 this.save = true; 47 console.log("created"); 48 }); 49 }, 50 }, 51}; 52</script>

ざっとみただけなんでダメだったらごめんなさい。

メソッドチェーンの中にnameとcontent、saveがあるからと思われます。

axiosの上に、
var _this = this

thenの中の thisを _thisに置き換えてください

投稿2021/05/15 00:08

編集2021/05/18 14:04
Tatsunosuke

総合スコア599

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

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

退会済みユーザー

退会済みユーザー

2021/05/17 22:14

返事ありがとうございます! 試したのですが、解消されませんでした。
Tatsunosuke

2021/05/18 00:50

あら、すみません! こちらでもこのソースを試してみますね! 'http://127.0.0.1:8000/api/posts', これは、データベースへの保存のAPIみたいな感じですか?
退会済みユーザー

退会済みユーザー

2021/05/18 11:01

そうです!投稿ボタン押して 内容が保存されるようにしたいです。
退会済みユーザー

退会済みユーザー

2021/05/20 19:18

回答ありがとうございます! Property or method "saved" is not defined on the instance but referenced during render.というエラーが出ていたのが、解消されました????‍♂️ 後、送信したデータがきちんと保存されるか再度確認します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問