With some column types, our attribute is a resource

This commit is contained in:
Deon George 2023-08-10 11:08:15 +10:00
parent fca133ef57
commit 60d17ea297

View File

@ -10,14 +10,24 @@ class CompressedString implements CastsAttributes
/** /**
* Cast the given value. * Cast the given value.
* *
* For postgresl bytea columns the value is a resource stream
*
* @param Model $model * @param Model $model
* @param string $key * @param string $key
* @param mixed $value * @param mixed $value
* @param array $attributes * @param array $attributes
* @return string * @return string
*/ */
public function get($model,string $key,$value,array $attributes): string public function get($model,string $key,mixed $value,array $attributes): string
{ {
// For stream resources, we to fseek in case we've already read it.
if (is_resource($value))
fseek($value,0);
$value = is_resource($value)
? stream_get_contents($value)
: $value;
return $value ? zstd_uncompress(base64_decode($value)) : ''; return $value ? zstd_uncompress(base64_decode($value)) : '';
} }