hasMany
、belongsToMany
などの関係で2つのテーブルから選択する際に問題があります。hasMany関係の列を選択して表示するLaravel
私が持っているテーブルitems
id
title
とテーブルreview
id
item_id
これは私のレビューモデルでは、私のアイテムのモデル
public function review()
{
return $this->hasMany('App\Review', 'item_id','id');
}
である
public function item()
{
return $this->belongsToMany('App\Item', 'item_id','id');
}
コントローラ
public function index()
{
$reviews = Review::with('item')->get();
return view('index', compact('reviews'));
}
とビューに私はアイテムテーブルからのクチコミテーブルとtitles
からすべてのreviews
を示したいと思います。
@foreach($reviews as $review)
{!!$review->item()->title!!}
@endforeach
エラー
SQLSTATE [42S02]:ベーステーブルまたはビューが見つかりません:1146表 'ps.item_id'(SQL存在しない:。
items
を選択*、item_id
id
としてpivot_id
、item_id
。items
からpivot_item_id
としてitem_id
内側はitems
にitem_id
に参加する。id
=item_id
。item_id
ここitem_id
。15、16、17、18、19、20、21、22、23(中id
、24,25))
明らかに私の関係は間違っています。誰も私をここで少し助けてくれる?
'Review'モデルの' belongsToMany'関係は 'belongsTo'関係でなければなりません。 – milo526