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.
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
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
Migrationen zum Erstellen von Standardtabellen ausführen:
php artisan migrate
Lassen Sie uns einen Controller erstellen, um die Verwendung von Query Builder zu demonstrieren:
php artisan make:controller UserController
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!']); } }
Verwenden Sie Query Builder, um alle Zeilen aus der Benutzertabelle auszuwählen:
$users = DB::table('users')->get();
Beispielantwort:
[ { "id": 1, "name": "John Doe", "email": "john@example.com" }, { "id": 2, "name": "Jane Doe", "email": "jane@example.com" } ]
Fügen Sie einen neuen Benutzer mit Query Builder ein:
DB::table('users')->insert([ 'name' => 'Alice', 'email' => 'alice@example.com', 'password' => bcrypt('password123'), ]);
Dadurch wird ein neuer Benutzer zur Benutzertabelle hinzugefügt.
Um einen vorhandenen Datensatz zu aktualisieren, verwenden Sie update():
DB::table('users') ->where('id', 1) ->update([ 'name' => 'John Smith', 'email' => 'johnsmith@example.com' ]);
Dadurch wird der Benutzer mit der ID 1 in der Benutzertabelle aktualisiert.
Um einen Datensatz aus der Datenbank zu löschen, verwenden Sie delete():
DB::table('users')->where('id', 2)->delete();
Dadurch wird der Benutzer mit der ID 2 gelöscht.
Sie können zusätzliche Methoden verketten, um die Daten zu filtern oder Bedingungen zur Abfrage hinzuzufügen.
$users = DB::table('users') ->where('email', 'like', '%example.com%') ->orderBy('name', 'asc') ->get();
Der Query Builder von Laravel erleichtert das Paginieren von Ergebnissen.
$users = DB::table('users')->paginate(10);
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 ]); });
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]);
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!