初心者です。
laravelのコントローラー => blade => vueという順番で変数(配列)を渡して使っています。
vueで使用するときにリレーション関係にあるはずのnameが取れません。
rider_idはtaskモデルに入っているのは確認できました。
"id" => 16
"rider_id" => 4
"title" => "ああああああ"
error
1[Vue warn]: Error in render: "TypeError: Cannot read property 'name' of undefined" 2TypeError: Cannot read property 'name' of undefined
controller
1public function show($id) 2 { 3 $user = Auth::user($id); 4 $tasks = $user->tasks()->get(); 5 return view('rider.show')->with('tasks',$tasks); 6 }
blade
1@extends('layouts.rider.app') 2@section('content') 3<mypage-component v-bind:tasks="{{$tasks}}"></mypage-component> 4@endsection
vue
1<template> 2 <div class="card" style="width: 18rem;" > 3 <div class="container" v-for="task in tasks" :key="task.id"> 4 <div class="card-header"> 5 Featured 6 </div> 7 <ul class="list-group list-group-flush"> 8 <li class="list-group-item">{{task.title}}</li> 9 <li class="list-group-item">{{task.content}}</li> 10 <li class="list-group-item">{{task.date}}</li> 11 <li class="list-group-item">{{task.rider.name}}</li> 12 </ul> 13 </div> 14 </div> 15</template> 16 17<script> 18export default { 19 props: { 20 tasks: { 21 type: Array, 22 default: '', 23 required: false 24 } 25 } 26} 27</script>
model
1public function rider() 2 { 3 return $this->belongsTo('App\Models\Rider', 'rider_id', 'id', 'riders'); 4 }
model
1public function tasks() 2 { 3 return $this->hasMany('App\Models\Task'); 4 }
どこに原因があるのか突き止められませんでした。
知恵をお借りしたいです。
vue 2.6.11
laravel 6.0
php 7.4.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/17 04:22