Erste Schritte mit Laravel: Ein Leitfaden für Anfänger zum Query Builder

Susan Sarandon
Freigeben: 2024-09-23 06:22:02
Original
575 Leute haben es durchsucht

Getting Started with Laravel: A Beginner

Laravels Query Builder bietet eine leistungsstarke, flüssige Schnittstelle zum Erstellen von SQL-Abfragen in PHP. Es ermöglicht Ihnen, mit der Datenbank in einer ausdrucksstarken, SQL-ähnlichen Syntax zu interagieren und gleichzeitig den größten Teil der Komplexität zu abstrahieren.

Wir gehen einen typischen Anwendungsfall in einer Laravel-Anwendung durch, bei der Query Builder für verschiedene Aufgaben wie das Auswählen, Einfügen, Aktualisieren und Löschen von Daten verwendet wird.


Schritt 1: Laravel-Projekt einrichten

Wenn Sie kein Laravel-Projekt haben, können Sie eines wie folgt einrichten:

composer create-project --prefer-dist laravel/laravel laravel-query-builder
cd laravel-query-builder
php artisan serve
Nach dem Login kopieren

Stellen Sie sicher, dass Sie Ihre Datenbankkonfiguration in der .env-Datei einrichten:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password
Nach dem Login kopieren

Migrationen zum Erstellen von Standardtabellen ausführen:

php artisan migrate
Nach dem Login kopieren

Schritt 2: Verwenden Sie den Query Builder in einem Controller

Lassen Sie uns einen Controller erstellen, um die Verwendung von Query Builder zu demonstrieren:

php artisan make:controller UserController
Nach dem Login kopieren

Bearbeiten Sie UserController.php mit dem folgenden Code:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class UserController extends Controller
{
    // Fetching all users from the users table
    public function index()
    {
        // Step 3: Select all users
        $users = DB::table('users')->get();

        return response()->json($users);
    }

    // Insert a new user
    public function store(Request $request)
    {
        // Step 4: Insert a new user
        DB::table('users')->insert([
            'name' => $request->name,
            'email' => $request->email,
            'password' => bcrypt($request->password),
        ]);

        return response()->json(['message' => 'User created successfully!']);
    }

    // Update an existing user
    public function update(Request $request, $id)
    {
        // Step 5: Update user by ID
        DB::table('users')
            ->where('id', $id)
            ->update([
                'name' => $request->name,
                'email' => $request->email,
            ]);

        return response()->json(['message' => 'User updated successfully!']);
    }

    // Delete a user
    public function destroy($id)
    {
        // Step 6: Delete user by ID
        DB::table('users')->where('id', $id)->delete();

        return response()->json(['message' => 'User deleted successfully!']);
    }
}
Nach dem Login kopieren

Schritt 3: Daten abrufen

Verwenden Sie Query Builder, um alle Zeilen aus der Benutzertabelle auszuwählen:

$users = DB::table('users')->get();
Nach dem Login kopieren
  • Beschreibung:
    • Die DB::table('users')-Methode zielt auf die Benutzertabelle ab.
    • Die get()-Methode ruft alle Datensätze aus dieser Tabelle ab.

Beispielantwort:

[
    {
        "id": 1,
        "name": "John Doe",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane Doe",
        "email": "jane@example.com"
    }
]
Nach dem Login kopieren

Schritt 4: Daten einfügen

Fügen Sie einen neuen Benutzer mit Query Builder ein:

DB::table('users')->insert([
    'name' => 'Alice',
    'email' => 'alice@example.com',
    'password' => bcrypt('password123'),
]);
Nach dem Login kopieren
  • Beschreibung:
    • Die Methode insert() fügt eine neue Zeile in die Benutzertabelle ein.
    • Die Daten werden als assoziatives Array übergeben, in dem die Schlüssel mit den Spaltennamen übereinstimmen.

Dadurch wird ein neuer Benutzer zur Benutzertabelle hinzugefügt.


Schritt 5: Daten aktualisieren

Um einen vorhandenen Datensatz zu aktualisieren, verwenden Sie update():

DB::table('users')
    ->where('id', 1)
    ->update([
        'name' => 'John Smith',
        'email' => 'johnsmith@example.com'
    ]);
Nach dem Login kopieren
  • Beschreibung:
    • Die where()-Klausel wählt die Zeile mit der ID = 1 aus.
    • Die update()-Methode ändert die Namens- und E-Mail-Felder für die ausgewählte Zeile.

Dadurch wird der Benutzer mit der ID 1 in der Benutzertabelle aktualisiert.


Schritt 6: Daten löschen

Um einen Datensatz aus der Datenbank zu löschen, verwenden Sie delete():

DB::table('users')->where('id', 2)->delete();
Nach dem Login kopieren
  • Beschreibung:
    • Die where()-Klausel gibt die Bedingung für die Auswahl des Benutzers mit der ID 2 an.
    • Die Methode delete() entfernt die passende Zeile aus der Tabelle.

Dadurch wird der Benutzer mit der ID 2 gelöscht.


Schritt 7: Filtern mit Query Builder

Sie können zusätzliche Methoden verketten, um die Daten zu filtern oder Bedingungen zur Abfrage hinzuzufügen.

Beispiel: Benutzer mit einer bestimmten Bedingung abrufen

$users = DB::table('users')
    ->where('email', 'like', '%example.com%')
    ->orderBy('name', 'asc')
    ->get();
Nach dem Login kopieren
  • Beschreibung:
    • Die where()-Klausel fügt eine Bedingung hinzu, die Benutzer abruft, deren E-Mail-Adresse example.com enthält.
    • Die Methode orderBy() sortiert die Benutzer nach Namen in aufsteigender Reihenfolge.

Schritt 8: Paginierung

Der Query Builder von Laravel erleichtert das Paginieren von Ergebnissen.

$users = DB::table('users')->paginate(10);
Nach dem Login kopieren
  • Beschreibung:
    • Die Methode paginate() unterteilt die Ergebnisse in Seiten und zeigt 10 Ergebnisse pro Seite an.

Schritt 9: Transaktionen

Verwenden Sie Datenbanktransaktionen, um sicherzustellen, dass mehrere Abfragen erfolgreich ausgeführt werden. Wenn eine Abfrage fehlschlägt, werden alle Änderungen rückgängig gemacht.

DB::transaction(function () {
    DB::table('users')->insert([
        'name' => 'John Doe',
        'email' => 'john@example.com',
        'password' => bcrypt('password123')
    ]);

    DB::table('orders')->insert([
        'user_id' => 1,
        'order_total' => 500
    ]);
});
Nach dem Login kopieren
  • Beschreibung:
    • Die Methode „transaktion()“ stellt sicher, dass sowohl die Tabelleneinfügungen „Benutzer“ als auch „Bestellungen“ erfolgreich ausgeführt werden. Wenn einer der beiden Vorgänge fehlschlägt, werden beide Vorgänge zurückgesetzt.

Schritt 10: Rohabfragen

Wenn Sie unformatiertes SQL ausführen müssen, ermöglicht der Query Builder von Laravel dies:

$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
Nach dem Login kopieren
  • Beschreibung:
    • Die Methode select() kann zum Ausführen von Roh-SQL-Abfragen verwendet werden.
    • Aus Sicherheitsgründen werden vorbereitete Anweisungen (?) verwendet, um SQL-Injection zu verhindern.

Abschluss

Der Query Builder von Laravel bietet eine leistungsstarke und flexible Möglichkeit, mit Ihrer Datenbank zu interagieren und einen Großteil der SQL-Komplexität zu abstrahieren. Indem Sie jeden Teil aufschlüsseln – Abrufen, Einfügen, Aktualisieren, Löschen, Filtern und mehr – können Sie Ihre Datenbankinteraktionen einfach auf saubere und organisierte Weise verwalten.

Dieses Beispiel bietet eine grundlegende Anleitung zum Query Builder. Wenn Ihre Anwendung wächst, können Sie mit Eloquent erweiterte Funktionen wie Verknüpfungen, Unterabfragen und Eager Loading verwenden.

Das obige ist der detaillierte Inhalt vonErste Schritte mit Laravel: Ein Leitfaden für Anfänger zum Query Builder. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!