-
app/Casts/Color.php
Open in GitHubuse Illuminate\Contracts\Database\Eloquent\CastsAttributes; use Illuminate\Database\Eloquent\Model; class Color implements CastsAttributes { public function get(Model $model, string $key, mixed $value, array $attributes): string { return '#'.$value; } public function set(Model $model, string $key, mixed $value, array $attributes): mixed { $color = ltrim($value, '#'); // Convert short hex colors if (strlen($color) === 3) { return $color[0].$color[0].$color[1].$color[1].$color[2].$color[2]; } return $color; } }
-
app/Models/Role.php
Open in GitHubuse Azuriom\Casts\Color; class Role extends Model { // ... protected $casts = [ 'color' => Color::class, 'is_admin' => 'boolean', ]; // ... }