Projects [SHOW]
07. Views
Creating Views
Views enthalten das von Ihrer Anwendung bereitgestellte HTML und trennen Ihre Controller-/Anwendungslogik von Ihrer Präsentationslogik. Views werden im Verzeichnis resources/views gespeichert. Eine einfache Ansicht könnte etwa so aussehen:
<!-- View stored in resources/views/greeting.blade.php -->
<html>
<body>
<h1>Hello, {{ $name }}</h1>
</body>
</html>
Da diese Ansicht unter resources/views/greeting.blade.php gespeichert ist, können wir sie mit dem globalen View Helfer so zurückgeben:
Route::get('/', function () {
return view('greeting', ['name' => 'John Doe']);
});
Wie Sie sehen können, entspricht das erste Argument, das an den View Helfer übergeben wird, dem Namen der View-Datei im Verzeichnis resources/views. Das zweite Argument ist ein Array von Daten, die der View zur Verfügung gestellt werden sollen. In diesem Fall übergeben wir die Namensvariable, die in der View mit der Blade-Syntax angezeigt wird.
Views können auch in Unterverzeichnisse des Verzeichnisses resources/views verschachtelt werden. Die "Dot"-Notation kann verwendet werden, um auf verschachtelte Ansichten zu verweisen. Wenn Ihre Ansicht beispielsweise unter resources/views/admin/profile.blade.php gespeichert ist, können Sie sie wie folgt referenzieren:
return view('admin.profile', $data);
Determining If A View Exists
Wenn Sie feststellen müssen, ob eine Ansicht vorhanden ist, können Sie die view-Facade verwenden. Die exists-Methode gibt true zurück, wenn die View existiert:
use Illuminate\Support\Facades\View;
if (View::exists('emails.customer')) {
//
}
Creating The First Available View
Mit der first-Methode können Sie die erste View erstellen, die in einem bestimmten Array von Views existiert. Dies ist nützlich, wenn Ihre Anwendung oder Ihr Paket es ermöglicht, Ansichten anzupassen oder zu überschreiben:
return view()->first(['custom.admin', 'admin'], $data);
Sie können diese Methode auch über die View-Facade aufrufen:
use Illuminate\Support\Facades\View;
return View::first(['custom.admin', 'admin'], $data);