Laravel - Arbeit mit Datenbanken

Hallo dort, ambitionierte Entwickler! Ich freue mich, euch auf eine Reise durch die faszinierende Welt von Laravel und der Datenbankverwaltung mitzunehmen. Als jemand, der schon seit Jahren Informatik unterrichtet, kann ich euch versichern, dass das Beherrschen von Datenbankoperationen wie das Fahrradfahren lernen ist - es mag zuerst einschüchternd erscheinen, aber wenn ihr den Dreh raus habt, werdet ihr mit Leichtigkeit durch eure Projekte rasen!

Laravel - Working With Database

Verbindung zur Datenbank herstellen

Lassen wir mit den Grundlagen beginnen - die Verbindung zu einer Datenbank herzustellen. Stellt euch vor, dass ihr eurer Laravel-Anwendung ihre neue beste Freundin, die Datenbank, vorstellt. Sie müssen sich erst bekannt machen, bevor sie zusammenarbeiten können!

Konfiguration

Zuerst einmal müssen wir Laravel mitteilen, wo es unsere Datenbank finden kann und wie es darauf zugreift. Laravel macht das super einfach mit seiner Konfigurationsdatei. Öffnet die .env-Datei im Stammverzeichnis eures Projekts und ihr werdet etwas wie folgendes sehen:

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

Diese Zeilen sind wie eine Karte für Laravel zu eurer Datenbank. Lassen wir es auseinandernehmen:

  • DB_CONNECTION: Dies ist die Art der Datenbank, die ihr verwendet. MySQL ist standardmäßig eingestellt, aber Laravel unterstützt auch andere.
  • DB_HOST: Wo eure Datenbank lebt. Für die lokale Entwicklung ist es normalerweise euer eigener Computer (127.0.0.1).
  • DB_PORT: Die Türnummer, an der Laravel anklopfen soll, um auf die Datenbank zuzugreifen.
  • DB_DATABASE: Der Name eurer Datenbank.
  • DB_USERNAME und DB_PASSWORD: Euer geheimer Handshake, um in die Datenbank zu gelangen.

Verbindung testen

Nun, da wir Laravel mit unserer Datenbank bekannt gemacht haben, lassen wir unsergehen, ob sie gut miteinander auskommen. Wir können das mit einem einfachen Artisan-Befehl tun:

php artisan tinker

Dies öffnet Laravels interaktives Shell. Jetzt lassen wir uns versuchen zu verbinden:

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

Wenn ihr eine lange Zeichenkette aus Zahlen und Buchstaben seht, gratuliere ich euch! Eure Laravel-Anwendung und eure Datenbank sind jetzt beste Freunde.

Tabellen erstellen

Nun, da wir verbunden sind, ist es an der Zeit, einige Tabellen zu erstellen. In der Datenbankwelt sind Tabellen wie Tabellenkalkulationen, in denen wir unsere Daten speichern.

Migrationen

Laravel verwendet etwas, das als "Migrationen" bezeichnet wird, um Tabellen zu erstellen und zu ändern. Stellt euch Migrationen als Zeitmaschine für eure Datenbank vor - sie erlauben es euch, in der Geschichte eurer Datenbank zurück und forth zu reisen.

Um eine Migration zu erstellen, verwendet diesen Artisan-Befehl:

php artisan make:migration create_users_table

Dies erstellt eine neue Datei im Ordner database/migrations. Öffnet sie und ihr werdet etwas wie folgendes sehen:

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();
});
}

Dies ist wie eine Bauanleitung für eure Tabelle. Lassen wir es auseinandernehmen:

  • $table->id(): Erzeugt eine auto-incrementierende ID-Spalte.
  • $table->string('name'): Erzeugt eine Spalte zum Speichern von Namen.
  • $table->string('email')->unique(): Erzeugt eine eindeutige E-Mail-Spalte.
  • $table->timestamp('email_verified_at')->nullable(): Erzeugt eine optionalen Zeitstempel-Spalte.
  • $table->string('password'): Erzeugt eine Spalte zum Speichern von Passwörtern.
  • $table->rememberToken(): Erzeugt eine Spalte zum Speichern von "remember me"-Tokens.
  • $table->timestamps(): Erzeugt created_at und updated_at-Spalten.

Um diese Tabelle tatsächlich in eurer Datenbank zu erstellen, führt aus:

php artisan migrate

Und voilà! Eure Tabelle ist erstellt.

Daten einfügen

Nun, da wir eine Tabelle haben, lassen wir einige Daten hineinlegen. Es gibt mehrere Möglichkeiten, dies in Laravel zu tun.

Verwenden von Eloquent

Eloquent ist Laravels integriertes ORM (Object-Relational Mapping). Es ist wie ein Übersetzer zwischen eurem PHP-Code und eurer Datenbank. Hier ist, wie ihr es verwenden könnt, um Daten einzufügen:

use App\Models\User;

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

In diesem Beispiel erstellen wir ein neues User-Objekt, setzen seine Eigenschaften und speichern es in der Datenbank. So einfach ist das!

Verwenden des Query Builders

Wenn ihr eine mehr SQL-ähnliche Herangehensweise bevorzugt, könnt ihr den Laravel-Query-Builder verwenden:

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

Diese Methode ist etwas direkter - wir sagen Laravel genau, in welche Tabelle einzufügen und welche Daten zu verwenden.

Daten abrufen

Nun, da wir Daten in unsere Datenbank eingefügt haben, lernen wir, wie man sie wieder herausbekommt.

Verwenden von Eloquent

Um alle Benutzer abzurufen:

$users = User::all();

Um einen bestimmten Benutzer zu finden:

$user = User::find(1);

Um Benutzer mit Bedingungen abzurufen:

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

Verwenden des Query Builders

Um alle Benutzer abzurufen:

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

Um einen bestimmten Benutzer zu finden:

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

Um Benutzer mit Bedingungen abzurufen:

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

Daten aktualisieren

Daten zu aktualisieren ist genauso einfach wie das Einfügen. Lassen wir uns einige Methoden ansehen.

Verwenden von Eloquent

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

Verwenden des Query Builders

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

Daten löschen

Schließlich lernen wir, wie man Daten aus unserer Datenbank entfernt.

Verwenden von Eloquent

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

Verwenden des Query Builders

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

Und das war's! Ihr habt gerade die Grundlagen der Arbeit mit Datenbanken in Laravel gelernt. Denkt daran, Übung macht den Meister. Seid nicht afraid, verschiedene Abfragen auszuprobieren. Bereit, ein Datenbank-Zauberer zu werden! Hier ist eine schnelle Referenztabelle der Methoden, die wir behandelt haben:

Operation Eloquent Query Builder
Einfügen $user = new User; $user->save(); DB::table('users')->insert([]);
Alle abrufen User::all(); DB::table('users')->get();
Einen abrufen User::find(1); DB::table('users')->where('id', 1)->first();
Mit Bedingungen abrufen User::where('name', 'John Doe')->get(); DB::table('users')->where('name', 'John Doe')->get();
Aktualisieren $user->save(); DB::table('users')->where('id', 1)->update([]);
Löschen $user->delete(); DB::table('users')->where('id', 1)->delete();

Frohes Coden, zukünftige Datenbankmeister!

Credits: Image by storyset