簡體   English   中英

在Laravel 5.1中緩存懶惰的渴望加載查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM