我有一个页面,我在其子类别网址下显示产品,在我的页面顶部,我想打印subcategory title
和subcategory image
,我该怎么做?
这是我的功能:
public function productsubcategory($slug, $subslug)
{
$products = Product::whereHas('subcategory', function($q) use($subslug){
$q->where('slug',$subslug);
})->paginate(12);
return view('frontend.subcategories', compact('products'));
}
我用@foreach($products as $product) ....
答案 0 :(得分:0)
你做的最好的方式是一对多的关系。使用ORM。您将在此处获得详细信息:https://laravel.com/docs/5.0/eloquent
在您的Category.php模型中
public function subcategories()
{
return $this->hasMany('App\Subcategory', 'category_id');
}
在你的Subcategory.php模型中
public function category()
{
return $this->belongsTo('App\Category', 'category_id');
}
public function products()
{
return $this->hasMany('App\Product', 'subcategory_id');
}
和你的Product.php模型
public function subcategory()
{
return $this->belongsTo('App\Subcategory', 'subcategory_id');
}
您将获得子类别列表 $ subcategories = Category :: find($ id) - > subcategories;
你得到的产品
foreach($subcategories as $subCat)
{
//your code
}
这是“一对多”关系的另一个链接。如果您阅读详细信息,它将帮助您。 https://laravel.com/docs/5.5/eloquent-relationships
答案 1 :(得分:0)
我在我的函数中添加了另一个查询,所以完全变成这样:
public function productsubcategory($slug, $subslug)
{
$products = Product::whereHas('subcategory', function($q) use($subslug){
$q->where('slug',$subslug);
})->paginate(12);
$productss = Product::whereHas('subcategory', function($q) use($subslug){
$q->where('slug',$subslug);
})->first();
return view('frontend.subcategories', compact('products', 'productss'));
}
以下是我在其网页上显示subcategory
信息的方式。
{{$productss->Subcategory->title}}
希望这有助于他人。