Laravel 13 permette di dichiarare alcune configurazioni di Eloquent direttamente sopra la classe del modello, con attributi PHP come #[Table] e #[WithoutTimestamps]. Questo rende quelle impostazioni più vicine alla dichiarazione della classe, ma non elimina le proprietà dai modelli: per esempio, i valori predefiniti continuano a essere definiti con $attributes.
Cosa cambia in Laravel 13
Laravel 13 amplia il supporto agli attributi PHP e consente di esprimere in modo dichiarativo alcune configurazioni Eloquent sulla classe del modello. La documentazione del framework descrive opzioni per tabelle, chiavi, timestamp e formati data. Non si tratta però di una sostituzione generale delle proprietà o delle costanti già usate nei modelli.
As an Amazon Associate I earn from qualifying purchases.
Laravel 13 è stato rilasciato il 17 marzo 2026 e richiede PHP 8.3 o successivo; le note ufficiali indicano compatibilità con PHP 8.3–8.5. Il progetto dichiara correzioni di bug fino al terzo trimestre 2027 e aggiornamenti di sicurezza fino al 17 marzo 2028. Consulta le note di rilascio di Laravel 13 per gli aggiornamenti più recenti.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →In PHP, un attributo è metadato scritto con la sintassi #[...] e associato a una dichiarazione, per esempio una classe. È distinto dagli “attributi” Eloquent, termine che indica anche i dati del modello, come i valori delle colonne. Il manuale PHP descrive gli attributi del linguaggio.
#1 Best Overall
Come usare #[Table] per configurare una tabella
Eloquent ricava normalmente il nome della tabella dal nome della classe, usando il plurale in snake case. Se il nome effettivo è diverso, Laravel 13 documenta l’attributo Table:
use IlluminateDatabaseEloquentAttributesTable;
use IlluminateDatabaseEloquentModel;
#[Table('my_flights')]
class Flight extends Model
{
// ...
}
L’attributo colloca la configurazione sulla dichiarazione della classe, invece di esprimerla con una proprietà nel corpo del modello. È una scelta di organizzazione del codice, non un’indicazione che ogni proprietà abbia ora un equivalente tramite attributo.
Come dichiarare una chiave primaria non convenzionale
Per una chiave primaria chiamata uuid, di tipo stringa e non incrementale, la documentazione mostra le opzioni di Table nella stessa dichiarazione:
#[Table(key: 'uuid', keyType: 'string', incrementing: false)]
class Flight extends Model
{
// ...
}
Senza una configurazione diversa, Eloquent presume una chiave id intera e incrementale. Se l’unica variazione necessaria è disabilitare l’incremento, è documentato anche l’attributo dedicato:
use IlluminateDatabaseEloquentAttributesWithoutIncrementing;
#[WithoutIncrementing]
class Flight extends Model
{
// ...
}
Quali attributi usare per timestamp e date
Disabilitare i timestamp automatici
Per un modello che non deve gestire automaticamente i timestamp, Laravel documenta #[WithoutTimestamps]:
use IlluminateDatabaseEloquentAttributesWithoutTimestamps;
#[WithoutTimestamps]
class Flight extends Model
{
// ...
}
Impostare il formato delle date
Per dichiarare il formato delle date, la documentazione mostra #[DateFormat('U')]. In alternativa, Table può ricevere l’opzione dateFormat. La scelta tra le forme documentate dipende da come si vuole raggruppare la configurazione del modello; non implica un cambiamento automatico dei dati esistenti.
Rank #3
Rinominare le colonne dei timestamp
Per cambiare i nomi delle colonne usate per creazione e aggiornamento, gli esempi Eloquent continuano a usare le costanti CREATED_AT e UPDATED_AT. Gli attributi PHP di Laravel 13 non sostituiscono quindi ogni forma di configurazione precedente.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Quali proprietà restano nei modelli Eloquent
La proprietà $attributes resta il meccanismo documentato per definire valori predefiniti degli attributi dati del modello. I valori vanno espressi nel formato grezzo memorizzabile nel database, per esempio:
protected $attributes = [
'status' => 'pending',
];
La documentazione Eloquent continua a presentare questa proprietà per i valori predefiniti, mentre gli attributi PHP descritti sopra configurano aspetti statici della classe. La documentazione Eloquent di Laravel 13 illustra i due meccanismi nei rispettivi contesti.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Quando scegliere un attributo o mantenere la configurazione esistente
| Esigenza | Meccanismo documentato | Da tenere presente |
|---|---|---|
| Usare un nome di tabella non convenzionale | #[Table('my_flights')] |
La tabella convenzionale deriva dal nome della classe. |
| Configurare chiave, tipo e incremento | Opzioni key, keyType e incrementing di #[Table] |
Per disabilitare soltanto l’incremento è disponibile anche #[WithoutIncrementing]. |
| Disattivare i timestamp automatici | #[WithoutTimestamps] |
È una configurazione dichiarata sulla classe. |
| Definire il formato delle date | #[DateFormat('U')] oppure l’opzione dateFormat di #[Table] |
Usare la forma adatta a come si vuole esporre la configurazione. |
| Rinominare le colonne dei timestamp | Costanti CREATED_AT e UPDATED_AT |
La documentazione continua a mostrare le costanti. |
| Impostare valori predefiniti dei dati del modello | Proprietà $attributes |
I valori devono essere nel formato grezzo memorizzabile nel database. |
Gli attributi sono adatti a impostazioni statiche esposte esplicitamente dal framework. Non presumere che siano intercambiabili con valori o logica dipendenti dall’istanza: la documentazione citata non stabilisce un’equivalenza di questo tipo. Inoltre, le note di rilascio e la documentazione Eloquent non forniscono benchmark comparativi sulle prestazioni.
Serve convertire i modelli per aggiornare a Laravel 13?
Le fonti ufficiali citate non prescrivono una conversione generalizzata delle proprietà in attributi né descrivono un aggiornamento automatico. Per adottare Laravel 13, il requisito da considerare è PHP 8.3 o successivo; la revisione dei modelli può invece limitarsi alle configurazioni per cui un attributo documentato migliora la leggibilità del progetto. Le proprietà e le costanti ancora mostrate dalla documentazione restano appropriate nei rispettivi casi.
Recommended Free Tools
Il supporto agli attributi in Laravel 13 si estende anche oltre Eloquent: le note di rilascio citano controller, autorizzazioni, code, eventi, notifiche, validazione, test e serializzazione delle risorse. L’idea è avvicinare alcune configurazioni e comportamenti alle classi o ai metodi interessati, non rimuovere tutti i meccanismi di configurazione già presenti.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




