proofdb/vendor/illuminate/database/Eloquent/Casts/AsFluent.php
2026-05-01 23:40:14 +08:00

33 lines
966 B
PHP

<?php
namespace Illuminate\Database\Eloquent\Casts;
use Illuminate\Contracts\Database\Eloquent\Castable;
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use Illuminate\Support\Fluent;
class AsFluent implements Castable
{
/**
* Get the caster class to use when casting from / to this cast target.
*
* @param array $arguments
* @return \Illuminate\Contracts\Database\Eloquent\CastsAttributes<\Illuminate\Support\Fluent, string>
*/
public static function castUsing(array $arguments)
{
return new class implements CastsAttributes
{
public function get($model, $key, $value, $attributes)
{
return isset($value) ? new Fluent(Json::decode($value)) : null;
}
public function set($model, $key, $value, $attributes)
{
return isset($value) ? [$key => Json::encode($value)] : null;
}
};
}
}