Closed shawnheide closed 5 years ago
Hi @shawnheide, this sounds like intended behavior. This package caches any queries that Eloquent runs behind the scenes. If Laravel runs multiple queries for ->find()
, then it will cache the results of each of those. Sorry for the late reply.
Issue
In looking at the cache records in Redis from a single call of
firstOrFail
I see three records created and am wondering if this is the intended behavior. It's probably just easier to follow if you set a breakpoint in the (get
method) of CachedBuilder and go through the stack, but I'll try to summarize what I'm seeing.find
method in CachedBuilderfirst
method in CachedBuilder which gets called from the parent call to Illuminate\Database\Eloquent\Builder tofind
get
method in CachedBuilder which gets called from the parent call to Builder in the BuildsQueries trait'sfirst
method which usestake(1)
. The call totake(1)
also sets thelimit
property to true which turns the result into a collectionSo what I end up with are two (almost identical) cache records for the model and one for a collection with one element. Is that how it's supposed to be or am I missing something in understanding all of this? Thanks for your time and help, I really appreciate it.
Environment
Laravel Version: 5.6.39 Laravel Model Caching Package Version: 0.3.6 PHP Version: 7.2.2
Stack Trace