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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

1回答

841閲覧

laravelとvueでaxiosを使ってデータベースから値を受取り表示したい

naga777

総合スコア7

Vue.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2020/07/20 06:33

編集2020/07/20 08:15

前提・実現したいこと

laravelとVueで自作のアプリケーションを作成しています

axiosでgetしてきた値を表示させる際に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

axiosを用いて、DBのデータを取得するところまではできています
consoleにて確認しました

vueで扱うために、データをcompetitionsに格納してそれぞれのカラム(今回はmember)を表示したいのですが、表示されません。
(ちなみにHELLOは表示されるのでcomponentファイルへのルーティング等は問題ないと認識しています)

console

1ReferenceError: competitions is not defined

該当のソースコード

testComponent.vue

1 2<template> 3<div> 4 <li v-for="competition in competitions" :key="competition.id">{{ competition.member }}</li> 5    HELLO 6</div> 7</template> 8 9<script> 10 export default { 11 data () { 12 return { 13 competitions: [], 14 } 15 }, 16 created (){ 17 this.competitions = []; 18 axios.get('/api/competition/competitonteams') 19 .then(response => { 20 // console.log(response.data); 21 this.competitions = response.data.member; 22 console.log(response.data.member); 23 console.log('loglogs'); 24 console.log(competitions); 25 }) 26 .catch( 27 response => console.log(response) 28 ); 29 } 30 } 31 32</script> 33

testComponent.vue

1/** 2 * First we will load all of this project's JavaScript dependencies which 3 * includes Vue and other libraries. It is a great starting point when 4 * building robust, powerful web applications using Vue and Laravel. 5 */ 6 7require('./bootstrap'); 8 9window.Vue = require('vue'); 10 11import test from './components/testComponent.vue'; 12/** 13 * Next, we will create a fresh Vue application instance and attach it to 14 * the page. Then, you may begin adding components to this application 15 * or customize the JavaScript scaffolding to fit your unique needs. 16 */ 17 18// Vue.component('example-component', require('./components/ExampleComponent.vue')); 19Vue.component('test-component', require('./components/testComponent.vue')); 20 21const app = new Vue({ 22 el: '#app', 23 24}); 25

補足情報(FW/ツールのバージョンなど)

laravel5.6 vue

よろしくお願いします

console.log(response.data)の中身
![イメージ説明

console.log(this)
イメージ説明

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

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

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

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

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

meshi_s

2020/07/20 07:03

コンソールのエラーは「console.log(competitions);」にthisが足りてないからだと思われます。 axiosのデータがどのように取れているのでしょうか。
naga777

2020/07/20 08:16

consoleについては、console.log(this);では表示されましたが、console.log(this.competitions);はundefinedとなりました axiosのデータについては画像を追加しました
guest

回答1

0

※検討違いだったらすみません。

response.dataだけ渡すでは駄目でしょうか?

// response.data.memberがundefinedになる? this.competitions = response.data.member; ↓ this.competitions = response.data;

投稿2020/07/20 08:57

meshi_s

総合スコア276

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

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

naga777

2020/07/20 09:21

ありがとうございます this.competitions = response.data; に変更することで、console.log(response.data)とconsole.log(this.competitions);が一致しました 一方で、memberのみv-forで回したいのですがそちらは何も表示されないままです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問