リレーションをかけている先のデータが参照できていない。
いつもお世話になります。
Laravel5.5でUserがschoolをお気に入りに登録して、一覧を表示する機能を実装したいと思っておりますが実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Call to undefined method Illuminate\Database\Query\Builder::lists()
該当のソースコード
User.php
public function favolites() { return $this->belongsToMany(School::class, 'favolites', 'user_id', 'school_id')->withTimestamps(); } //お気に入り登録したschool一覧を取得 public function feed_school() { $favolite_school_ids = $this->favolites()->lists('schools.id')->toArray(); return School::whereIn('school_id', $favolite_school_ids); }
試したこと
public function feed_school() { dd($a=$this->favolites()); $favolite_school_ids = $this->favolites()->lists('schools.id')->toArray(); return School::whereIn('school_id', $favolite_school_ids); }
では
BelongsToMany {#274 ▼ #table: "favolites" #foreignPivotKey: "user_id" #relatedPivotKey: "school_id" #parentKey: "id" #relatedKey: "id" #relationName: "favolites" #pivotColumns: array:2 [▶] #pivotWheres: [] #pivotWhereIns: [] +withTimestamps: true #pivotCreatedAt: null #pivotUpdatedAt: null #using: null #accessor: "pivot" #query: Builder {#269 ▼ #query: Builder {#270 ▶} #model: School {#268 ▶} #eagerLoad: [] #localMacros: [] #onDelete: null #passthru: array:12 [▶] #scopes: [] #removedScopes: [] } #parent: User {#276 ▶} #related: School {#268 ▶} }
と表示されますが
#related: School {#268 ▼ #connection: "mysql" #table: null #primaryKey: "id" #keyType: "int" +incrementing: true #with: [] #withCount: [] #perPage: 15 +exists: false +wasRecentlyCreated: false #attributes: [] #original: [] #changes: [] #casts: [] #dates: [] #dateFormat: null #appends: [] #dispatchesEvents: [] #observables: [] #relations: [] #touches: [] +timestamps: true #hidden: [] #visible: [] #fillable: [] #guarded: array:1 [▶] } }
関連したschoolがうまく取れてきておりません。
favolitesテーブルは
+----+---------+-----------+---------------------+---------------------+
| id | user_id | school_id | created_at | updated_at |
+----+---------+-----------+---------------------+---------------------+
| 1 | 2 | 1 | 2018-04-13 05:50:39 | 2018-04-13 05:50:39 |
| 3 | 1 | 1 | 2018-04-13 13:37:12 | 2018-04-13 13:37:12 |
+----+---------+-----------+---------------------+---------------------+
以上のようになっており、登録は問題ありません。
申し訳ございませんがご助力のほどよろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー