Closed zhenyangze closed 5 years ago
if (is_array(array_get($where, "values"))) {
return implode("_", $where["values"]);
}
if (is_array(array_get($where, "value"))) {
return reset($where['value']);
}
More: model()->find(1) and model()->find([1]) Error:
edit file vendor/genealabs/laravel-model-caching/src/CachedBuilder.php
change find
function like that
/**
* @SuppressWarnings(PHPMD.ShortVariable)
*/
public function find($id, $columns = ["*"])
{
if (! $this->isCachable()) {
return parent::find($id, $columns);
}
$idKey = collect($id)->implode('-');
$preStr = is_array($id) ? 'find-list' : 'find';
$cacheKey = $this->makeCacheKey($columns, null, "-" . $preStr . "_{$idKey}");
return $this->cachedValue(func_get_args(), $cacheKey);
}
Please provide the full stack trace of the error. I am currently traveling and won't be back until next week.
Have a nice trip;I'll add it later.
already provide the full stack trace of the error. and the second bug report goto this page: https://github.com/GeneaLabs/laravel-model-caching/issues/204
More: model()->find(1) and model()->find([1]) Error: edit file
vendor/genealabs/laravel-model-caching/src/CachedBuilder.php
changefind
function like that/** * @SuppressWarnings(PHPMD.ShortVariable) */ public function find($id, $columns = ["*"]) { if (! $this->isCachable()) { return parent::find($id, $columns); } $idKey = collect($id)->implode('-'); $preStr = is_array($id) ? 'find-list' : 'find'; $cacheKey = $this->makeCacheKey($columns, null, "-" . $preStr . "_{$idKey}"); return $this->cachedValue(func_get_args(), $cacheKey); }
https://github.com/GeneaLabs/laravel-model-caching/issues/204
@mikebronner can confirm that @zhenyangze's proposed change does fix the issue as I ran into this last night when attempting to utilize this package.
I ran into the issue with the following:
private function getEvent($hash)
{
$event = Hashids::decode($hash);
return Event::where('id', $event[0])->first();
}
Working on a proper pull request for you at the moment.
@zhenyangze @cluebattery Can you guys test this again with the latest release, 0.4.12? Please re-open if it is still failing.
Describe the bug Return value of GeneaLabs\LaravelModelCaching\CacheKey::getValuesFromWhere() must be of the type string, array returned
Eloquent Query Please provide the complete eloquent query that caused the bug, for example:
Stack Trace
Environment
Additional context error file is : vendor/genealabs/laravel-model-caching/src/CacheKey.php
Laravel support both where('id', [1]) and where('id', 1); when use where('id', 1), the $where will show:
when use where('id', [1]), the $where will show:
so may be support both: add values and value convert to string;