loader

Laravel: Creazione di un modello

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àDescrizionePredefinito
protected $connectionNome della connessione DBConnessione DB predefinita
protected $tableNome della tabellaConv. SpecialPerson diventa special_people
protected $primaryKeyTabella PKid
public $incrementingIndica se gli ID sono a incremento automaticotrue
public $timestampsIndica se il modello deve essere timestamptrue
const CREATED_ATNome della colonna timestamp di creazionecreated_at
const UPDATED_ATNome della colonna timestamp di modificaupdated_at
protected $datesAttributi che devono essere modificati in DateTime, oltre agli attributi di timestamp[]
protected $dateFormatFormato in cui gli attributi della data saranno mantenutiPredefinito SQL corrente.
protected $withRapporti da caricare con il modello[]
protected $hiddenAttributi omessi nella serializzazione del modello[]
protected $visibleAttributi consentiti nella serializzazione del modello[]
protected $appendsAccessors di attributi aggiunti alla serializzazione del modello[]
protected $fillableAttributi che sono assegnabili in serie[]
protected $guardedAttributi elencati in nero dall’assegnazione di massa[*] (Tutti gli attributi)
protected $touchesLe relazioni che dovrebbero essere toccate al salvataggio[]
protected $perPageIl numero di modelli da restituire per l’impaginazione.15