Controller und Actions
Erstellen Sie Controller mit Artisan und verarbeiten Sie Anfragen in Action-Methoden.
Controller und Actions ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist ein Controller?
Ein Controller bündelt zusammengehörige Logik zur Verarbeitung von Requests. Statt Closures in Route-Dateien zu verwenden, delegieren Sie die Verarbeitung an Controller-Methoden (Aktionen).
Einen Controller generieren
Verwenden Sie Artisan, um ein Grundgerüst für einen Controller zu erstellen.
$ php artisan make:controller UserController
$ php artisan make:controller PostController --resourceGrundlegender Controller
Ein Controller erweitert Controller und verfügt über öffentliche Methoden für jede Routenaktion.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
public function index(): \Illuminate\View\View
{
$users = User::all();
return view("users.index", compact("users"));
}
}Auf den Request zugreifen
Geben Sie Illuminate\Http\Request als Typ in der Aktionsmethode an – Laravel fügt ihn automatisch ein.
<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
$name = $request->input("name");
$email = $request->input("email");
User::create(["name" => $name, "email" => $email]);
return redirect()->route("users.index");
}Formularvalidierung
Verwenden Sie $request->validate(), um Eingaben zu validieren. Bei einem Fehler leitet Laravel automatisch zurück und übergibt die Fehler.
<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
$validated = $request->validate([
"name" => "required|string|max:255",
"email" => "required|email|unique:users",
]);
User::create($validated);
return redirect()->route("users.index");
}Methoden eines Resource-Controllers
Ein Resource-Controller verfügt über 7 konventionelle Methoden: index, create, store, show, edit, update, destroy.
Single-Action-Controller
Invokable Controller verfügen über eine einzige __invoke()-Methode – ideal für Aktionen, die genau eine Aufgabe erledigen.
<?php
class SendWelcomeEmail extends Controller
{
public function __invoke(User $user): void
{
Mail::to($user)->send(new WelcomeMail($user));
}
}
// Route:
Route::post("/users/{user}/welcome", SendWelcomeEmail::class);Controller-Middleware
Wenden Sie Middleware mit der Methode middleware() im Konstruktor auf bestimmte Aktionen an.
<?php
public function __construct()
{
$this->middleware("auth")->except(["index", "show"]);
}Dependency Injection
Geben Sie Services in den Parametern der Aktionsmethode als Typ an – Laravel löst sie über den Service-Container auf.
<?php
public function store(Request $request, Mailer $mailer): JsonResponse
{
// $mailer is auto-injected
}Responses zurückgeben
Controller können Folgendes zurückgeben: Views, Weiterleitungen, JSON-Responses und Datei-Downloads.
<?php
return view("users.show", compact("user"));
return redirect()->back()->with("status", "Saved!");
return response()->json($user);
return response()->download(storage_path("report.pdf"));Controller-Namensräume
Alle Controller befinden sich standardmäßig in App\Http\Controllers. Unterverzeichnisse erzeugen untergeordnete Namensräume: App\Http\Controllers\Admin\UserController.
Controller schlank halten
Controller sollten die Geschäftslogik an Service-Klassen oder Actions delegieren. Streben Sie Controller an, die nur Folgendes tun: Eingaben validieren, einen Service aufrufen und eine Response zurückgeben.
Zusammenfassung
Generieren Sie Controller mit Artisan. Geben Sie Request und Services als Typ an, damit sie automatisch eingefügt werden. Verwenden Sie validate() zur Eingabevalidierung. Halten Sie Controller schlank – delegieren Sie Aufgaben an Services.
Schnelltest
Welcher Artisan-Befehl generiert einen Resource-Controller?
Häufig gestellte Fragen
Ist die Lektion „Controller und Actions“ kostenlos?
Ja — der vollständige Text von „Controller und Actions“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Controller und Actions“?
Erstellen Sie Controller mit Artisan und verarbeiten Sie Anfragen in Action-Methoden. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um PHP Academy zu starten?
Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Controller und Actions“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?
Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Laravel-Projektstruktur
- Routen in Laravel definieren
- Controller und Actions
- Blade-Templates und Views