Conversia Datelor cu Casts și Accessors / Mutators în Laravel

eloquent Laravel 11.x / PHP 8.2+ Q&A / Distribuie cod

Transformarea automată a coloanelor SQL în tipuri native PHP (JSON, boolean, DateTime, criptare asimetrică) și noua metodă casts() din Laravel 11.

Sintaxă
protected function casts(): array { return ['settings' => 'array', 'is_admin' => 'boolean']; }

Baza de date stochează datele ca stringuri, numere sau câmpuri JSON text. Attribute Casting convertește automat aceste coloane în tipuri native PHP la citire și le serializează înapoi la salvare.

În Laravel 11, noua convenție recomandată este definirea metodei casts() (înlocuind vechea proprietate $casts), permițând definirea de caste dinamice, Enum-uri PHP 8.1 sau caste criptate ('encrypted') cu suport complet pentru auto-completare.

Exemplu: Metoda casts() în Laravel 11 și Accessor modern
namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\Attribute;

class User extends Model
{
    protected function casts(): array
    {
        return [
            'email_verified_at' => 'datetime',
            'is_admin' => 'boolean',
            'preferences' => 'array', // Convertește automat coloana JSON în array PHP!
            'secret_token' => 'encrypted',
        ];
    }

    // Accessor / Mutator modern:
    protected function fullName(): Attribute
    {
        return Attribute::make(
            get: fn (mixed $value, array $attributes) => $attributes['first_name'] . ' ' . $attributes['last_name'],
        );
    }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Conversia Datelor cu Casts și Accessors / Mutators

Ai o nelămurire despre utilizarea comenzii Conversia Datelor cu Casts și Accessors / Mutators sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.