2016-07-01 38 views
1

我想在页面上的数据显示,从两个表但有一点状况,我无法理解了它如何使它在Laravel 4从两个表中选择,并显示在laravel一切

所以我有表categories和表products。目前我显示页面上的所有类别,没有问题。问题是现在有没有类别的产品,我想循环他们也在页面上。

当管理员创建产品时,他选择了类别,但是如果不选择它,将会节省1默认数据库productssingle_product

这是产品型号

public function categories() 
{ 
    return $this->hasMany('Categories', 'category_id'); 
} 

而且分类模型

public function products() 
{ 
    return $this->hasMany('Product', 'category_id'); 
} 

public function lowestProduct() { 
    return $this->products()->selectRaw('*, max(price) as aggregate') 
    ->groupBy('products.product_id')->orderBy('aggregate'); 
} 

这是视图

<div class="col-xs-8 text-left" style="margin-top: 9px"> 
     @if($category['no_category'] == 0) 
      Price: <strong>{{ $category->products()->min('price') }} $</strong>       
     @else 
      Price from: <strong>{{ $category->products()->min('price') }} $</strong> 
     @endif 
    </div> 

如何从products表中选择single列,并显示他们对页面以及类别名称?

回答

1

然后没有分类。避免你的类别类,直接从产品类中获取。创建一个功能,如:

public function singleItems() 
{ 
    return $this->where("single_product", 1)->get(); 

} 

然后你foreach结果出来。有关详细信息,请检查:

https://laravel.com/docs/5.1/eloquent-collections

我上面知道是laravel比你的另一个版本,但我认为它应该工作。否则告诉我,然后我会更进一步。

+0

在哪个文件中,我应该把这..在产品模型?那么如何对他们进行foreach? –

+0

你应该在你的视图文件或路由文件中对它们进行foreach。你可以做到完全相同的类别。 – Aprilsnar

+0

谢谢!我想我明白了。我把它放在家庭控制器+第二个循环中,在我看来.. –