###前提・実現したいこと
Laravel5.4 1対多のリレーションがうまく表示されません。
1対多 モデル Lecture.php / Picture.php
Lectureは複数のPictureを持つ。
各モデルに hasMany、BelongsTo は記載済み。
pictures マイグレーションファイル内に foreign key 設定済み。
コレクションがうまく作成されていない、ようなのですが、原因わからず。
お手数ですがご教授お願いできればと思います。
###発生している問題・エラーメッセージ
ErrorException Property [id] does not exist on this collection instance.
###該当のソースコード
LectureController.php
public function showtest($id) { $lectures = Lecture::FindOrFail($id); $pictures = $lectures->pictures; return view('admin.show', compact('lectures', 'pictures')); }
show.blade.php
//この記載はデータを取得できている {{$pictures->count()}} // 1と表示される //この記載だとエラー発生 {{$pictures->id}}
###試したこと
php artisan tinkerでも同じエラー
php artisan tinker >>>$c = App\Lecture::find(1)->pictures->count(); => 1 >>> $c = App\Lecture::find(1)->pictures; => Illuminate\Database\Eloquent\Collection {#715 all: [ App\Picture {#714 id: "1", filename: "catch.jpg", lecture_id: "1", sort: "1", created_at: "2017-08-26 19:48:47", updated_at: "2017-08-26 19:48:47", }, ], } >>>$c = App\Lecture::find(1)->pictures->id; Exception with message 'Property [id] does not exist on this collection instance.'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/27 03:46