前提
vue3のオブジェクト操作にかんして質問があります。
データベースからidが最大のレコードを取得してそれをブラウザにひょうじするプログラムを作成しています。
以下プログラムです。
CategoryTopComponent.vue
1<script setup> 2 import { ref, reactive, onMounted } from "vue" 3 4 const category = ref('') 5 6 onMounted(() => { 7 8 axios.get('/api/top') 9 .then((res) => { 10 11 category.value = res.data 12 console.log(category) 13 console.log(category.value) 14 console.log(category.value[0]) 15 console.log(category.value[0].title) 16 }) 17 }) 18</script> 19<template> 20 <div>{{ category.value.title }}</div> 21</template>
console.logでデバッグすると以下の画像のように表示されます。
この画像は
console.log(category)
console.log(category.value)
console.log(category.value[0])
console.log(category.value[0].title)
の出力の結果です。
CategoryTopComponent.vue:31 Uncaught TypeError: Cannot read properties of undefined (reading 'title') at Proxy._sfc_render (CategoryTopComponent.vue:31:24)
またサーバ側での処理はlaravelを使用しています。
一番idの大きいデータをフロント側へ送っています。
CategoryController.php
1 public function top() 2 { 3 $maxId = Category::max('id'); 4 5 6 return Category::where('id', '=', $maxId)->get(); 7 8 }
<div>{{ category.value[0].title }}</div>
などのいろいろな書き方でためしたのですがうまくいきませんでした。
laravel9, vue3を使用しており
componentAPI,OptionsAPIどちらの書き方でも試しましたが、レコードのタイトルを表示することはできませんでした。
どうぞよろしくおねがいいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/05 08:48