2016-07-01 55 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

謝謝!我想我明白了。我把它放在家庭控制器+第二個循環中,在我看來.. –