2013-12-11 32 views
1

比方說我們有許多人兩款車型,優惠券和產品在許多獲取每個實例的總出現許多透視表

class Coupon extends \Eloquent { 

    protected $table = 'coupons'; 

    public function products() 
    { 
     return $this->belongsToMany('Product'); 
    } 
} 

class Product extends \Eloquent { 

    protected $table = 'products'; 

    public function coupons() 
    { 
     return $this->belongsToMany('Coupon'); 
    } 
} 

與數據透視表的多對多關係剛配對的兩個模型:

table: coupon_product 
coupon_id, product_id 

在數據透視表,有可能(在我的情況下有效)有多個對相同的,即

coupon_id | product_id 
    1   1 
    1   1 
    1   2 
    2   1 
    3   3 
    3   3 

什麼是獲得總券用的最佳方式(作爲一個例子)的產品ID = 1,計數優惠券中出現的所有數據透視表?我們的目標是有一個$券陣列中的視圖通過,以顯示與產品ID登記的所有的優惠券的列表= 1

在樞軸表的上面的例子,這將是:

  1. 優惠券1
  2. 優惠券1
  3. 優惠券2

回答

0

如果您正在使用DB查詢生成器:

DB::table('coupons')->where('product_id', 1)->get(); 

如果使用雄辯ORM:

Product::find(1)->coupons; 

當使用雄辯ORM,如果你想添加一些制約其優惠券加載,你可以使用以下命令:

Product::find(1)->coupons()->where(some_condition)->get(); 
+0

Thans Shishir,我正在做你對於雄辯的建議,沒有 - >最終得到(),並且對什麼是錯誤感到沮喪......也許你應該把它添加到你的答案以及以防萬一:) – alou

+0

你是對的。我將編輯答案來解決這個問題。 – Shishir