2016-04-08 7 views
0

İki tablonun Şarkılar (belongsTo App \ Host) ve Hosts (hasMany App \ Song) var. Şarkılarımın bir attempts sütun var ve ana bilgisayar tablom skip_threshold sahip. İlgili Ana Bilgisayarın atlama eşiğini karşılamayan tüm Şarkıları sorgulamak istiyorum.Wired cümleciğindeki WHERE deyimindeki yabancı anahtar verilerinin başvurulan

Bunu nasıl yapabilirim? Böyle bir şey denedim

:

return $songs = Song::whereIn('host_id', $available_hosts) 
         ->where('attempts', '<', $songs->host->skip_threshold)->get(); 

Ben, Etkili ilişki sorgulama faydalanmak için teşebbüs ettik ama testlerden elde bunu çalışmaz görüyoruz. Bunu yapmak için Eloquent'i denemek ve kullanmak istiyorum, böylece blade şablonumda istekli yükleme ile ilgili verilerden yararlanabiliyorum. Ne aradığınızı anlama olsam

cevap

0

Sen araya zincir can,

$songs = Song::whereHas('host', function($query) { 
    $query->where('skip_threshold', '>', DB::raw('songs.attempts')); 
})->get(); 
+0

yan tümce, bu soruyu nasıl ekleyebilirim? Sadece belirli ana bilgisayar anahtarlarının sorgulanmasını istiyorum – Imran

+0

Sadece daha önce açıkladığınız gibi koyun. @David sizin için yaptı. – trinvh

1

deneyebilirsiniz nerede hükümler, şöyle: Bu istendiği gibi çalışır ancak burada kaldırır

$songs = Song::whereHas('host', function($query) { 
    $query->where('skip_threshold', '>', DB::raw('songs.attempts')); 
})->whereIn('host_id', $available_hosts)->get();