2015-09-22 12 views
5

मैं निम्न विधि द्वारा 60 मिनट के लिए क्वेरी के सभी रिकॉर्ड को कैश करने के कोशिश कर रहा हूँ (विधि 1)कैश laravel में क्वेरी से सभी रिकॉर्ड 5

Route::get('categoryList', function() { 
    return app\CategoryDetails::remember(60)->get(); 
}); 

मैं इस ट्यूटोरियल link (युक्ति 5 पीछा किया: कैश डाटाबेस प्रश्नों)

लेकिन मैं इस त्रुटि हो रही है:

Call to undefined method Illuminate\Database\Query\Builder::remember()

मुझे लगता है मैं यहाँ क्या याद कर रहा हूँ पता नहीं है।

Btw, मैं जानता हूँ कि मैं निम्न विधि द्वारा पूरे रिकॉर्ड (विधि 2) कैश कर सकते:

Route::get('categoryList', function() {  
    $category = Cache::remember('category', 10, function() { 
     return \App\CategoryDetails::all(); 
    }); 

    return $category; 
}); 

और इस पूरी तरह से काम कर रहा है।

मैं सिर्फ उत्सुक हूं कि पहली विधि मेरे लिए क्यों काम नहीं कर रही है।

+0

पहली विधि का प्रयोग लैरावेल 4 में किया गया था, बाद में लार्वेल 5 में उपयोग किया जाता है। –

उत्तर

8

लार्वेल 5 ने इस कार्यक्षमता को हटा दिया। अब आप store the cache yourself करने के लिए है:

Route::get('categoryList', function() { 
    return Cache::remember('category-details', 60, function() { 
     return App\CategoryDetails::all(); 
    }); 
}); 

the upgrade docs से:

Eloquent no longer provides the remember method for caching queries. You now are responsible for caching your queries manually using the Cache::remember function.

+0

क्या उन्होंने इसे कहीं भी दस्तावेज किया है? सिर्फ जानना उत्सुक है। –

+0

@Muhammed Khalander - हाँ। मैंने इसे अपने जवाब में जोड़ा। –

0

एक laravel वाक्पटु क्वेरी कैशिंग पुस्तकालय rememberable

यह एक सुंदर अच्छा काम करता है कहा जाता है का उपयोग कर पर विचार करें।

संबंधित मुद्दे