Zum Hauptinhalt springen

Einführung

Ganze HTML-Dokumente als Strings direkt aus Routen oder Controllern zurückzugeben ist in der Praxis nicht sinnvoll. Mit Views können Sie das gesamte HTML in eigenen Dateien ablegen. Views trennen Controller- bzw. Anwendungslogik von der Präsentationslogik und liegen im Verzeichnis resources/views. In Laravel schreiben Sie Views üblicherweise mit der Blade-Template-Sprache.
<!-- resources/views/greeting.blade.php -->
<html>
    <body>
        <h1>Hallo, {{ $name }}</h1>
    </body>
</html>
Diese View ist in resources/views/greeting.blade.php gespeichert und kann über den globalen Helper view zurückgegeben werden.
Route::get('/', function () {
    return view('greeting', ['name' => 'Taro']);
});

Views erstellen

Um eine View zu erstellen, legen Sie im Verzeichnis resources/views eine Datei mit der Endung .blade.php an oder verwenden einen Artisan-Befehl.
php artisan make:view greeting
Die Endung .blade.php teilt dem Framework mit, dass die Datei ein Blade-Template enthält.

Views zurückgeben

Sobald Sie eine View erstellt haben, können Sie sie aus Routen oder Controllern mit dem globalen Helper view zurückgeben.
Route::get('/', function () {
    return view('greeting', ['name' => 'Taro']);
});
Alternativ verwenden Sie die Facade View.
use Illuminate\Support\Facades\View;

return View::make('greeting', ['name' => 'Taro']);
Das erste Argument des view-Helpers entspricht dem Dateinamen der View im Verzeichnis resources/views. Das zweite Argument ist ein Array mit Daten, die in der View verfügbar sein sollen.

Verschachtelte View-Verzeichnisse

Views können in Unterverzeichnissen von resources/views verschachtelt werden. Für verschachtelte Views nutzen Sie die „Punkt”-Notation. Zum Beispiel wird eine View, die in resources/views/admin/profile.blade.php liegt, so zurückgegeben:
return view('admin.profile', $data);
Der Verzeichnisname einer View darf keinen Punkt (.) enthalten.

Die zuerst existierende View zurückgeben

Mit der Methode first der Facade View geben Sie aus einem Array die erste tatsächlich vorhandene View zurück.
use Illuminate\Support\Facades\View;

return View::first(['custom.admin', 'admin'], $data);

Prüfen, ob eine View existiert

Um zu prüfen, ob eine View existiert, verwenden Sie die Methode exists der Facade View.
use Illuminate\Support\Facades\View;

if (View::exists('admin.profile')) {
    // ...
}

Daten an Views übergeben

Wie im obigen Beispiel gezeigt, können Sie ein Array von Daten an eine View übergeben, um sie darin zu verwenden.
return view('greetings', ['name' => 'Hanako']);
Die Daten müssen als assoziatives Array (Schlüssel-Wert-Paare) vorliegen. In der View greifen Sie über den jeweiligen Schlüssel auf die Werte zu. Mit der Methode with können Sie Daten auch einzeln hinzufügen. with gibt eine Instanz des View-Objekts zurück, sodass sich Methoden verketten lassen.
return view('greeting')
    ->with('name', 'Hanako')
    ->with('occupation', 'Engineer');

Daten in allen Views teilen

Wenn Sie Daten in allen Views verfügbar machen möchten, verwenden Sie die Methode share der Facade View. In der Regel schreiben Sie dies in die boot-Methode eines Service Providers.
<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Startvorgang der Anwendungsdienste
     */
    public function boot(): void
    {
        View::share('appName', 'MyApp');
    }
}

Optimierung von Views

Standardmäßig werden Blade-Templates on demand kompiliert. Da die Kompilierung bei jeder Anfrage stattfindet, kann sich das leicht auf die Performance auswirken. Mit dem Artisan-Befehl view:cache kompilieren Sie alle in der Anwendung verwendeten Views im Voraus. Es empfiehlt sich, diesen Schritt als Teil des Deploy-Prozesses auszuführen.
php artisan view:cache
Zum Leeren des View-Caches verwenden Sie folgenden Befehl:
php artisan view:clear

Nächste Schritte

Blade-Templates

Lernen Sie, wie Sie mit der Blade-Syntax dynamische Views bauen.
Zuletzt geändert am 13. Juli 2026