> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Views

> Erfahren Sie, wie Sie in Laravel Views erstellen, sie aus Routen und Controllern zurückgeben und Daten an sie übergeben.

## 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](/de/blade).

```blade theme={null}
<!-- 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.

```php theme={null}
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.

```shell theme={null}
php artisan make:view greeting
```

Die Endung `.blade.php` teilt dem Framework mit, dass die Datei ein [Blade-Template](/de/blade) 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.

```php theme={null}
Route::get('/', function () {
    return view('greeting', ['name' => 'Taro']);
});
```

Alternativ verwenden Sie die Facade `View`.

```php theme={null}
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:

```php theme={null}
return view('admin.profile', $data);
```

<Warning>
  Der Verzeichnisname einer View darf keinen Punkt (`.`) enthalten.
</Warning>

### 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.

```php theme={null}
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`.

```php theme={null}
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.

```php theme={null}
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.

```php theme={null}
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 theme={null}
<?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.

```shell theme={null}
php artisan view:cache
```

Zum Leeren des View-Caches verwenden Sie folgenden Befehl:

```shell theme={null}
php artisan view:clear
```

## Nächste Schritte

<Card title="Blade-Templates" icon="code" href="/de/blade">
  Lernen Sie, wie Sie mit der Blade-Syntax dynamische Views bauen.
</Card>


## Related topics

- [HTTP-Tests](/de/http-tests.md)
- [Laravel-Paketentwicklung](/de/advanced/package-development.md)
- [Responses](/de/responses.md)
- [Blade-Templates](/de/blade.md)
- [Laravel Fortify und Starter-Kits](/de/advanced/fortify.md)
