[英]Caching Lazy Eager Loading Queries in Laravel 5.1
如何基於模型關系緩存渴望加載的懶惰查詢。 例如 -
$books = App\Book::all();
$books->load('author', 'publisher');
我可以用這樣的東西緩存第一個查詢
$books = Cache::remember('allbooks', 60, function() {
return App\Book::all();
});
如何緩存第二個查詢?
如果沒有直接方法,請提出任何解決方法,可能附帶示例代碼。
更新:我需要第二個查詢分別執行,以便可以分別清除這兩個緩存鍵。
您可以將查詢構建器with
方法一起使用:
$books = App\Book::with(['author','publisher'])->get();
或干脆在可調用的緩存中執行其他負載:
$books = Cache::remember('allbooks', 60, function() {
return App\Book::all()->load('author', 'publisher');
});
更新 :要使緩存分開,您需要兩個變量,如下所示:
$books = Cache::remember('allbooks', 60, function()
{
return App\Book::all();
});
$booksAP = Cache::remember('allbooks_ap', 60, function() use ($books)
{
return $books->load('author', 'publisher');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.