我有一个具有多对多关系的产品和项目表以及一个数据透视表(item_product) .
这就是我的模型的样子 . 当我尝试检索属于产品(类别) $selectedItems= $products->items()->get();
的项目时,我收到错误"Method items cannot be found" . 我似乎无法找到我的错误 . 请帮忙
Product
public function items()
{
return $this->belongsToMany('App\Item','item_product','product_id','item_id')
->withTimestamps();
}
Item
public function products()
{
return $this->belongsToMany('App\Product','item_product','item_id','product_id')
->withTimestamps();
}
Controller
$products = Product::all()->where('id',1);
$myItems= $products->items()->get();
return view('products',compact('myItems','products'));
1 回答
$products
不是Product
的实例试试这个:
说明:
这将按ID获取单个产品模型,或者如果该产品不存在则抛出异常 .
这会将
$myItems
设置为项目集合 . 这相当于:我建议你阅读documentation on relationships .