AsStringable.php 951 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace Illuminate\Database\Eloquent\Casts;
  3. use Illuminate\Contracts\Database\Eloquent\Castable;
  4. use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
  5. use Illuminate\Support\Str;
  6. class AsStringable implements Castable
  7. {
  8. /**
  9. * Get the caster class to use when casting from / to this cast target.
  10. *
  11. * @param array $arguments
  12. * @return \Illuminate\Contracts\Database\Eloquent\CastsAttributes<\Illuminate\Support\Stringable, string|\Stringable>
  13. */
  14. public static function castUsing(array $arguments)
  15. {
  16. return new class implements CastsAttributes
  17. {
  18. public function get($model, $key, $value, $attributes)
  19. {
  20. return isset($value) ? Str::of($value) : null;
  21. }
  22. public function set($model, $key, $value, $attributes)
  23. {
  24. return isset($value) ? (string) $value : null;
  25. }
  26. };
  27. }
  28. }