İki modelim var: App \ Song (aittir) \ Appliance (App Store) ve App \ Host (hasMany App \ Song). yeniden kullanılabilirliği içinIlişkilerin Üzerinde Makul Sorgulama Kapsamı
$songs = Song::whereHas('host', function($query) {
$query->where('skip_threshold', '>', \DB::raw('songs.attempts'))
->where('active', 1);
})
->whereNull('downloaded')
->get();
Bir sorgu alan (lar) dönüşmesini istiyoruz:
benim Kontrolör aşağıdaki sorgu var.
Eloquent'e oldukça yeni geldim, bu yüzden bunu yapmanın doğru yolu olduğundan emin değilim, çünkü bu iki Modelin herhangi bir sonuç döndürmemesi (olması gereken yerde).
Song.php
public function scopeEligable($query)
{
$query->where('skip_threshold', '>', \DB::raw('songs.attempts'));
}
public function scopeActiveHost($query)
{
$query->where('active', 1);
}
public function scopeInDownloadQueue($query)
{
$query->whereNull('downloaded');
}
o sorgu kapsamları çağırmak için kullandığınız denetleyicinizdeki kod nedir? (bu sonuçlar geri dönmüyor?) – dangel
'Song :: eligable() -> activehost() -> indownloadqueue() -> get();' – Imran
tüm kapsamlarınızda 'return' olmalıdır.' 'return $ '; query-> whereNull ('indirilen'). Kapsamlar her zaman bir sorgu oluşturucu örneğini döndürmelidir. https://laravel.com/docs/5.1/eloquent#query-scopes – dangel