Skip to content

Commit dfdd419

Browse files
author
Mike Harrison
committed
fix: disable model caching on relations if parent is disabled
1 parent 279a966 commit dfdd419

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/CachedBuilder.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,25 @@ public function paginate(
166166
return $this->cachedValue(func_get_args(), $cacheKey);
167167
}
168168

169+
/**
170+
* Get the relation instance for the given relation name.
171+
* This is overloaded so we can disable model cache on
172+
* relations if parent has disabled model caching.
173+
*
174+
* @param string $name
175+
* @return \Illuminate\Database\Eloquent\Relations\Relation
176+
*/
177+
public function getRelation($name)
178+
{
179+
$relation = parent::getRelation($name);
180+
181+
if(!$this->isCachable() && is_a($relation->getQuery(), self::class)){
182+
$relation->getQuery()->disableModelCaching();
183+
}
184+
185+
return $relation;
186+
}
187+
169188
protected function recursiveImplodeWithKey(array $items, string $glue = "_") : string
170189
{
171190
$result = "";

0 commit comments

Comments
 (0)