ben toSql()
Sorgu izin bellek sınırı tüketmektedir
select *
from `users`
where (`active` = 1 and `newsletter` = 1) and (`terminated` = 0 or (`terminated` = 1 and `newsletter_terminated` = 1));
Böyle anlamlı ile inşa ediyorum (yukarıdaki sorgu çıktısını alır gerçekten, çok basit bir sorgu var
$recipients = User::where([
'active' => 1,
'newsletter' => 1
])->where(function ($query) {
$query->where('terminated', 0)
->orWhere(function ($query){
$query->where('terminated', 1)
->where('newsletter_terminated', 1);
});
})->get();
Ama sp yazarken hatası
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /xxx/eloquent/vendor/illuminate/database/Illuminate/Database/Connection.php on line 303
alıyorum bu komut dosyası çalıştırdığınızda get
yöntemindeki ek sütunlar, get(['id']);
gibi sorunsuz çalışır. Ama yine de neden işe yaramadığını anlamıyorum. Bellek sızıntısı var gibi görünüyor, ama nerede?
Sorguyu SQL istemcimde yürüttüğümde, sorgu 3 ms ile bitiyor, dolayısıyla çok fazla veri oluyor gibi görünmüyor. Ne yazık ki, yüklü vagrant kutusunda xdebug yok, bu yüzden şu anda stacktrace alamıyorum.
Kullandığınız zaman ne olur? (['Field1', 'field2', ...]); Tablodaki tüm sütunlar için? –
Ne yazık ki bu aynı hata veriyor – Musterknabe
Sorgu kaç kayıt döndürüyor? –