2014-12-04 15 views
7

Bir alıcı_id sütunu ve bir satıcı_id sütunu olan bir masa pazarım olduğu bir proje üzerinde çalışıyorum. Bir satıcı piyasaya bir şey koyduğunda, seller_id ve buyer_id aynıdır, yani ürün şu anda satılıktır. Satıştan sonra, buyer_id ürünü satın alan kişiyi değiştirir. ŞimdiLavavel'de Eloquent üzerinden eşit değerlere sahip iki sütun bulun.

ben anlamlı üzerinden bu sorguyu yapıyorum satılık tüm ürünleri gösteriyorum benim uygulamada yer:

$market_records = Market::where('seller_id', '!=', Auth::user()->id)->where('seller_id', '=', 'buyer_id')->get(); 

Ben aynı kullanıcı tarafından değildir satılık sadece ürünler kadar istiyorum kim giriş yapmış ve sadece satıcı_id ve buyer_id'in aynı olduğu ürünleri istiyorum. Şimdi ikinci where deyimindeki sorun, satıcı_id'in istediğim gibi olmayan dize 'buyer_id' ile karşılaştırmasıdır. Alıcı_id'in seller_id'a eşit olduğu kayıtları alabildiğim yol nedir? 1

$market_records = Market::where('seller_id', '!=', Auth::user()->id)->whereRaw('seller_id = buyer_id')->get(); 

cevap

13

Yapmak whereRaw kullanmak gerekir sürümleri whereColumn (docs) kullanabilirsiniz:

$same = Market::whereColumn('seller_id', 'buyer_id')->get(); 
+0

Bir çekicilik gibi çalışır. Teşekkürler. – Rohan

3

İsteğe Bağlı: ->whereRaw('column1 = column2')

Seçenek 2:! Ne zaman satış buyer_id == null = seller_id, ->where('buyer_id', '=', null)

+0

Yabancı anahtarlar boş olamaz – Rohan

+0

Bunlar 1 olabilir ve alıcı 1 bir kukla olabilir. Fikir, standart bir değer olmasıdır. –

İlgili konular