Continuiamo questa escalation per la comprensione del framework Laravel, nello specifico parliamo dei Modelli per la gestione dei dati.
Approfondisci: Programmazione con pattern MVC – Il Model
Abbiamo visto la struttura della nostra applicazione dopo aver installato il framework, adesso dobbiamo iniziare a prendere familiarità con i comandi di artisan.
Partiamo con la prima operazione da eseguire per comprendere meglio:
php artisan make:model [ModelName]
Questo comando creerà nella nostra directory app un file che estende Eloquent\Model , ossia il nostro ORM.
La lista dei parametri per la creazione del modello:
- –migration o -m “Genera la migration”
- –controller o -c “Genera il relativo controller”
- –resource o -r “Indica se il controller generato è di risorse”
- –factory o -f “Genera il relativo facotory”
- –all o -a “Genera tutti i file relativi al model” (lo preferisco)
Analizzando nel dettaglio la sintassi potremmo scrivere il comando in questo modo:
php artisan make:model NostroModel -a
Come detto in precedenza questo creerà un nuovo file PHP in app/
per impostazione predefinita, denominato NostroModel, e conterrà tutto lo standard per il nuovo modello, che include la classe, lo spazio dei nomi e l’uso richiesto per una configurazione di base.
Avendo aggiunto il parametro “-a” ossia genera tutti i file necessari, che ricapitolando saranno inseriti in:
- Controller: app/Http/Controllers
- Migration: database/migrations/nome_model.php
- Factory: database/factories/nome_modelFactory.php
Configurazione del modello
Eloquent segue un approccio “convenzionale”, ossia estende la classe Model
base.
Questo significa che tutti i modelli ereditano le proprietà del Model base.
Salvo sovrascrittura, si applicano i seguenti valori predefiniti:
Proprietà | Descrizione | Predefinito |
---|---|---|
protected $connection | Nome della connessione DB | Connessione DB predefinita |
protected $table | Nome della tabella | Conv. SpecialPerson diventa special_people |
protected $primaryKey | Tabella PK | id |
public $incrementing | Indica se gli ID sono a incremento automatico | true |
public $timestamps | Indica se il modello deve essere timestamp | true |
const CREATED_AT | Nome della colonna timestamp di creazione | created_at |
const UPDATED_AT | Nome della colonna timestamp di modifica | updated_at |
protected $dates | Attributi che devono essere modificati in DateTime, oltre agli attributi di timestamp | [] |
protected $dateFormat | Formato in cui gli attributi della data saranno mantenuti | Predefinito SQL corrente. |
protected $with | Rapporti da caricare con il modello | [] |
protected $hidden | Attributi omessi nella serializzazione del modello | [] |
protected $visible | Attributi consentiti nella serializzazione del modello | [] |
protected $appends | Accessors di attributi aggiunti alla serializzazione del modello | [] |
protected $fillable | Attributi che sono assegnabili in serie | [] |
protected $guarded | Attributi elencati in nero dall’assegnazione di massa | [*] (Tutti gli attributi) |
protected $touches | Le relazioni che dovrebbero essere toccate al salvataggio | [] |
protected $perPage | Il numero di modelli da restituire per l’impaginazione. | 15 |