Laravel - Lavorare con il Database

Ciao a tutti, futuri sviluppatori! Sono entusiasta di portarvi in un viaggio attraverso il mondo affascinante di Laravel e la gestione del database. Come qualcuno che ha insegnato scienze informatiche per anni, posso assicurarvi che padroneggiare le operazioni sul database è come imparare a guidare una bicicletta - potrebbe sembrare spaventoso all'inizio, ma una volta che avete preso confidenza, zoomerete attraverso i vostri progetti con facilità!

Laravel - Working With Database

Connessione al Database

Iniziamo con le basi - connettersi a un database. Immaginate questo come presentare la vostra applicazione Laravel al suo nuovo migliore amico, il database. Devono conoscersi prima di iniziare a collaborare!

Configurazione

Prima di tutto, dobbiamo dire a Laravel dove trovare il nostro database e come accedervi. Laravel rende questo super facile con il suo file di configurazione. Aprite il file .env nella radice del vostro progetto, e vedrete qualcosa del genere:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

Queste righe sono come dare a Laravel una mappa del vostro database. Analizziamo:

  • DB_CONNECTION: Questo è il tipo di database che state utilizzando. MySQL è predefinito, ma Laravel supporta anche altri.
  • DB_HOST: Dove vive il vostro database. Per lo sviluppo locale, è solitamente il vostro computer (127.0.0.1).
  • DB_PORT: La porta su cui Laravel deve bussare per accedere al database.
  • DB_DATABASE: Il nome del vostro database.
  • DB_USERNAME e DB_PASSWORD: Il vostro segno segreto per entrare nel database.

Test della Connessione

Ora che abbiamo presentato Laravel al nostro database, assicuriamoci che stiano andando d'accordo. Possiamo farlo con un semplice comando artisan:

php artisan tinker

Questo apre la shell interattiva di Laravel. Ora, proviamo a connetterci:

DB::connection()->getPdo();

Se vedete una lunga stringa di numeri e lettere, congratulazioni! La vostra applicazione Laravel e il database sono ora grandi amici.

Creazione di Tabelle

Ora che siamo connessi, è il momento di creare alcune tabelle. Nel mondo del database, le tabelle sono come fogli di calcolo dove conserviamo i nostri dati.

Migrazioni

Laravel utilizza qualcosa chiamato "migrazioni" per creare e modificare tabelle. Pensate alle migrazioni come a una macchina del tempo per il vostro database - vi permettono di viaggiare indietro e in avanti nella storia del vostro database.

Per creare una migrazione, utilizzate questo comando artisan:

php artisan make:migration create_users_table

Questo crea un nuovo file nella cartella database/migrations. Apritelo, e vedrete qualcosa del genere:

public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}

Questa è come una piantina per la vostra tabella. Analizziamo:

  • $table->id(): Crea una colonna di ID auto-incrementante.
  • $table->string('name'): Crea una colonna per conservare i nomi.
  • $table->string('email')->unique(): Crea una colonna email unica.
  • $table->timestamp('email_verified_at')->nullable(): Crea una colonna di timestamp nullabile.
  • $table->string('password'): Crea una colonna per conservare le password.
  • $table->rememberToken(): Crea una colonna per conservare i token "ricorda me".
  • $table->timestamps(): Crea le colonne created_at e updated_at.

Per creare questa tabella nel vostro database, eseguite:

php artisan migrate

E voilà! La vostra tabella è creata.

Inserimento dei Dati

Ora che abbiamo una tabella, mettiamo alcuni dati al suo interno. Ci sono diversi modi per farlo in Laravel.

Utilizzando Eloquent

Eloquent è l'ORM (Object-Relational Mapping) integrato in Laravel. È come un traduttore tra il vostro codice PHP e il database. Ecco come utilizzarlo per inserire dati:

use App\Models\User;

$user = new User;
$user->name = 'John Doe';
$user->email = '[email protected]';
$user->password = bcrypt('password');
$user->save();

In questo esempio, stiamo creando un nuovo oggetto User, impostando le sue proprietà e poi salvandolo nel database. È semplice così!

Utilizzando il Builder di Query

Se preferite un approccio più simile a SQL, potete utilizzare il Builder di Query:

DB::table('users')->insert([
'name' => 'John Doe',
'email' => '[email protected]',
'password' => bcrypt('password'),
]);

Questo metodo è un po' più diretto - stiamo dicendo esattamente a Laravel in quale tabella inserire e quali dati utilizzare.

Recupero dei Dati

Ora che abbiamo inserito dati nel nostro database, impariamo come riprenderli.

Utilizzando Eloquent

Per recuperare tutti gli utenti:

$users = User::all();

Per trovare un utente specifico:

$user = User::find(1);

Per recuperare utenti con condizioni:

$users = User::where('name', 'John Doe')->get();

Utilizzando il Builder di Query

Per recuperare tutti gli utenti:

$users = DB::table('users')->get();

Per trovare un utente specifico:

$user = DB::table('users')->where('id', 1)->first();

Per recuperare utenti con condizioni:

$users = DB::table('users')->where('name', 'John Doe')->get();

Aggiornamento dei Dati

Aggiornare i dati è altrettanto facile come inserirli. Ecco alcuni metodi.

Utilizzando Eloquent

$user = User::find(1);
$user->name = 'Jane Doe';
$user->save();

Utilizzando il Builder di Query

DB::table('users')
->where('id', 1)
->update(['name' => 'Jane Doe']);

Eliminazione dei Dati

Infine, impariamo come rimuovere i dati dal nostro database.

Utilizzando Eloquent

$user = User::find(1);
$user->delete();

Utilizzando il Builder di Query

DB::table('users')->where('id', 1)->delete();

Ecco un riepilogo rapido delle operazioni che abbiamo coperto:

Operazione Eloquent Builder di Query
Inserimento $user = new User; $user->save(); DB::table('users')->insert([]);
Recupero Tutti User::all(); DB::table('users')->get();
Recupero Uno User::find(1); DB::table('users')->where('id', 1)->first();
Aggiornamento $user->save(); DB::table('users')->where('id', 1)->update([]);
Eliminazione $user->delete(); DB::table('users')->where('id', 1)->delete();

Buon coding, futuri maestri del database!

Credits: Image by storyset