我有3个具有这种关系的表:
现在,如果我现在想在用户商店中获取用户产品,我可以这样做:
public function show($id)
{
$store = Store::findOrFail($id);
$products = Product::where('user_id', $store->user_id)->get();
return view('admin.stores.show', compact('store', 'products'));
}
但是我想要的东西是这样的:
public function show($id)
{
$store = Store::where('id', $id)->with('products')->first();
return view('admin.stores.show', compact('store'));
}
由于products
列中的内容,如何在stores
和user_id
之间建立联系,以避免出现此行:
$products = Product::where('user_id', $store->user_id)->get();
答案 0 :(得分:2)
也许您应该在Store
和Product
之间添加关系。将此添加到Store
模型中:
public function products()
{
return $this->hasMany(Product::class, 'user_id', 'user_id');
}
并将其发送到Product
:
public function store()
{
return $this->belongsTo(Store::class, 'user_id', 'user_id');
}