我想展示我的品牌页面,如:url/discount/{brand-slug}
到目前为止我可以通过以下方式完成:
$brandspromotion = Brand::where('slug', $slug)->OfStatus('Active')->firstOrFail();
当我尝试仅在{3}名为brand_id
的第3个表中保存id
discounts
的产品时,会出现问题。
用简单的话说:我想只获取每个品牌的打折产品 。
product_id
brand_id
id
到products
表格找到自己的discounts
。到目前为止,我有这段代码,但是无效。)
public function brandspromotions($slug) {
$promotions = Discount::Valid()->get();
$grouped = $promotions->map(function ($item, $key) {
return $item->products->brand_id;
});
$brandspromotion = Brand::where('slug', $slug)->OfStatus('Active')
->where('id', $grouped)->get();
return view('front.brandspromotions', compact('brands', 'brandspromotion'));
}
product model
public function discount(){
return $this->belongsTo(Discount::class, 'product_id', 'id');
}
public function brand(){
return $this->belongsTo(Brand::class);
}
brand model
public function products(){
return $this->hasMany(Product::class);
}
discount model
public function products(){
return $this->belongsTo(Product::class, 'product_id', 'id');
}
答案 0 :(得分:2)
如果你有一个品牌slu and并且你想只获得该品牌的产品,这些产品在discounts
表中有记录:
Product::has('discount')
->whereHas('brand', function($q) use($slug) {
$q->where('slug', $slug);
})
->get();
discount
和brand
是Product
模型中定义的关系。