如何在laravel中获取详细信息页面中的类别信息

时间:2017-11-01 02:31:07

标签: php laravel

我有一个页面,我在其子类别网址下显示产品,在我的页面顶部,我想打印subcategory titlesubcategory 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) ....

这样的foreach显示我的产品

2 个答案:

答案 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}}

希望这有助于他人。