laravel önbelleğe alma mekanizması çalışıyor sorgu (istekli yükleme).laravel önbelleğe alma sorguları
Yukarıdaki örnekte yapılan tüm sorguları önbelleğe almanın bir yolu var mı? Teşekkürler!
laravel önbelleğe alma mekanizması çalışıyor sorgu (istekli yükleme).laravel önbelleğe alma sorguları
Yukarıdaki örnekte yapılan tüm sorguları önbelleğe almanın bir yolu var mı? Teşekkürler!
eagler loading sorgularını bu şekilde önleyemezsiniz.
$users = Cache::remember('custom_cache_key', 10, function() {
return User::with('posts', 'addresses')->get();
});
veya sorgu oluşturucu kullanarak tek bir sorgu oluşturmak:
User::with(['posts' => function ($q) {
$q->remember(10);
}, 'addresses' => function ($q) {
$q->remember(10);
}])->remember(10)->get();
veya ilişki tanımında:
...->select(...)->join(...)->where(...)->remember(...)
satır içi yapabiliriz cache::remember motor - Seçmen 2 çözümler var :
public function posts()
{
return $this->hasMany('Post')->remember(10);
}
Jarek, eğer ilgili bir model güncellenirse. Tüm istekli yüklenen sorguyu veya sadece belirli model değişikliğini geçersiz kılmalı mıyız? Bunu da burada (https://laracasts.com/discuss/channels/laravel/how-to-properly-do-caching-in-laravel-52) sordum. –
@AliGajani Gerçekle başlayalım, 'hatırlama 'metodu bir süre önce kaldırıldı, bu yüzden L5 + kullanmak kendi başınıza yapmanız gerektiği anlamına geliyor. Bu, özel bir önbelleğe alma sistemi ile sonuçlanır, bu durumda, güncelleme durumunda uygun önbelleğe alınmış sorguları geçersiz kılabilir/yenileyebilirsiniz. Önbelleğinizi sorguya dayandırdıysanız ('hatırla' yöntemi gibi), o zaman güncellenmiş olan ilgili tabloya karşı yalnızca birini geçersiz kılmanız gerekir. –
kod nasıl soruya cevap verir. – Cfreak