{"id":7942,"date":"2021-07-03T17:37:51","date_gmt":"2021-07-03T15:37:51","guid":{"rendered":"http:\/\/blog.via-internet.de\/?p=7942"},"modified":"2022-11-21T19:44:54","modified_gmt":"2022-11-21T18:44:54","slug":"laravel-install-jetstream-app","status":"publish","type":"post","link":"https:\/\/via-internet.de\/blog\/2021\/07\/03\/laravel-install-jetstream-app\/","title":{"rendered":"Laravel | Einstieg und erste Schritte"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"tl-dr\">TL;DR<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Der Code f\u00fcr die in diesem Post erstelle Anwendung liegt <a aria-label=\"hier (opens in a new tab)\" href=\"https:\/\/github.com\/r14r\/Laravel_Tutorial_Create-a-Jetstream-Livewire-App\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">hier<\/a>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"laravel-okosystem\">Laravel \u00d6kosystem<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"laravel-breeze\"><a aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" href=\"https:\/\/laravel.com\/docs\/8.x\/starter-kits#laravel-breeze\" target=\"_blank\">Laravel Breeze<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Laravel Breeze ist eine minimale, einfache Implementierung aller Authentifizierungsfunktionen von Laravel, einschlie\u00dflich Anmeldung, Registrierung, Pa\u00dfwortzur\u00fccksetzung, E-Mail-Best\u00e4tigung und Pa\u00dfwortbest\u00e4tigung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Standardansichtsebene von Laravel Breeze besteht aus einfachen <a rel=\"noreferrer noopener\" href=\"https:\/\/laravel.com\/docs\/8.x\/blade\" data-type=\"URL\" data-id=\"https:\/\/laravel.com\/docs\/8.x\/blade\" target=\"_blank\">Blade-Vorlagen<\/a>, die mit <a href=\"https:\/\/tailwindcss.com\/\" data-type=\"URL\" data-id=\"https:\/\/tailwindcss.com\/\">Tailwind CSS<\/a> gestaltet sind. Breeze bietet einen wunderbaren Ausgangspunkt f\u00fcr den Beginn einer frischen Laravel-Anwendung.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a rel=\"noreferrer noopener\" href=\"https:\/\/laravel.com\/docs\/8.x\/starter-kits#breeze-and-inertia\" target=\"_blank\">Breeze &amp; Inertia<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Laravel Breeze bietet auch eine Frontend-Implementierung von <a href=\"https:\/\/inertiajs.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Inertia.js<\/a> die von Vue oder React unterst\u00fctzt wird.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"laravel-jetstream-link\">Laravel Jetstream (Link)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Jetstream bietet ein sch\u00f6n gestaltetes Anwendungsger\u00fcst f\u00fcr Laravel und umfasst Anmeldung, Registrierung, E-Mail-Verifizierung, Zwei-Faktor-Authentifizierung, Sitzungsverwaltung, API-Unterst\u00fctzung \u00fcber Laravel Sanctum und optionales Teammanagement. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jetstream wurde mit <a href=\"https:\/\/tailwindcss.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tailwind CSS<\/a> entwickelt und bietet Ihre Wahl zwischen <a href=\"https:\/\/laravel-livewire.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Livewire<\/a>&nbsp;oder&nbsp;<a href=\"https:\/\/inertiajs.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Inertia.js<\/a>-gesteuertem Frontend-Ger\u00fcst.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"hinweis\">Hinweis:<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">W\u00e4hrend Laravel Breeze einen einfachen und minimalen Ausgangspunkt f\u00fcr die Erstellung einer Laravel-Anwendung bietet, erweitert Jetstream diese Funktionalit\u00e4t mit robusteren Funktionen und zus\u00e4tzlichen Frontend-Technologie-Stacks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Laravel-Neulinge empfehlen wir, sich mit Laravel Breeze vertraut zu machen, bevor sie Laravel Jetstream abschlie\u00dfen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-547dc858-a011-4067-921c-c2e528c2806e\"><a rel=\"noreferrer noopener\" href=\"https:\/\/laravel.com\/docs\/8.x\/starter-kits#laravel-jetstream\" target=\"_blank\">Jetstream<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-90af368a-679f-46d1-9237-23c3f024cfeb\">Jetstream bietet ein wundersch\u00f6n gestaltetes Anwendungsger\u00fcst f\u00fcr Laravel und umfa\u00dft Anmeldung, Registrierung, E-Mail-Verifizierung, Zwei-Faktor-Authentifizierung, Sitzungsverwaltung, API-Unterst\u00fctzung \u00fcber Laravel Sanctum und optionales Teammanagement. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-90af368a-679f-46d1-9237-23c3f024cfeb\">Jetstream wurde mit <a href=\"https:\/\/tailwindcss.com\/\">Tailwind CSS<\/a> entwickelt und bietet Ihre Wahl zwischen <a href=\"https:\/\/laravel-livewire.com\/\">Livewire<\/a>&nbsp;&#8211; oder &nbsp;<a href=\"https:\/\/inertiajs.com\/\">Inertia.js<\/a>-gesteuertem Frontend-Scaffolding.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-4a3ad802-3da9-4f0c-acbd-ce926d5e7e9a\"><a rel=\"noreferrer noopener\" href=\"https:\/\/laravel.com\/docs\/8.x\/fortify#introduction\" target=\"_blank\">Fortify<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Laravel Fortify ist eine Frontend-agnostische Authentifizierungs-Backend-Implementierung f\u00fcr Laravel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fortify registriert die Routen und Controller, die zur Implementierung aller Authentifizierungsfunktionen von Laravel erforderlich sind, einschlie\u00dflich Anmeldung, Registrierung, Zur\u00fccksetzen des Pa\u00dfworts, E-Mail-Verifizierung und mehr. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nach der Installation von Fortify k\u00f6nnen Sie den&nbsp;<code>route:list<\/code>&nbsp;Artisan-Befehl ausf\u00fchren, um die von Fortify registrierten Routen anzuzeigen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Da Fortify keine eigene Benutzeroberfl\u00e4che bereitstellt, soll es mit Ihrer eigenen Benutzeroberfl\u00e4che gekoppelt werden, die Anfragen an die registrierten Routen stellt. Wir werden im Rest dieser Dokumentation genau besprechen, wie Anfragen an diese Routen gestellt werden.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"1-voraussetzung\">Voraussetzung<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Voraussetzung f\u00fcr die Verwendung von Laravel ist eine lauff\u00e4hige Entwicklungsumgebung. Der Aufbau einer solchen Umgebung wird <a class=\"ek-link\" href=\"https:\/\/via-internet.de\/blog\/2021\/06\/19\/laravel-install-development-environment\/\">hier <\/a>beschrieben.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"installation-via-composer\">Installation mit Hilfe von Composer<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn auf Ihrem Computer bereits PHP und Composer installiert sind, k\u00f6nnen Sie ein neues Laravel-Projekt erstellen, indem Sie Composer direkt verwenden. <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">composer create-project laravel\/laravel app\n\ncd app<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nachdem die Anwendung erstellt wurde, k\u00f6nnen Sie den lokalen Entwicklungsserver von Laravel mit dem nachfolgenden Befehl starten:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">php artisan serve<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"installation-mit-hilfe-des-laravel-installer\">Installation mit Hilfe des Laravel Installer<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2-laravel-installer\">Laravel Installer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Am einfachsten wird eine neuen Anwendung installiert mit Hilfe der Laravel CLI <code>laravel<\/code>. Sie installieren diese \u00fcber<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">composer global require laravel\/installer<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der Laravel Installer verwendet f\u00fcr die neue Anwendung die vorgegebenen Standardeinstellungen (z., B. Registrierungsm\u00f6glichkeit ohne Mailbest\u00e4tigung).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hinweis: Im Laufe diese Posts werden Sie diese anpassen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3-erstellen-der-anwendung\">Erstellen der Anwendung<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">laravel new app --stack=livewire --jet --teams<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"436\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/laravel-new-app-stacklivewire-jet-teams-1024x436.png\" alt=\"\" class=\"wp-image-8192\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/laravel-new-app-stacklivewire-jet-teams-1024x436.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/laravel-new-app-stacklivewire-jet-teams-300x128.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/laravel-new-app-stacklivewire-jet-teams-768x327.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/laravel-new-app-stacklivewire-jet-teams.png 1226w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Anwendung erstellen<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"4-konfiguration-der-datenbank\">Konfiguration der Datenbank<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die Konfiguration der Datenbank erfolgt in der bereits vorhandenen Datei <kbd><code>.env<\/code><\/kbd>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nach der Installation finden Sie dort die folgenden Eintr\u00e4ge f\u00fcr eine MySQL Datenbankanbindung:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1002\" height=\"472\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/02-configure-database.png\" alt=\"\" class=\"wp-image-8193\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/02-configure-database.png 1002w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/02-configure-database-300x141.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/02-configure-database-768x362.png 768w\" sizes=\"auto, (max-width: 1002px) 100vw, 1002px\" \/><figcaption class=\"wp-element-caption\">Standardeinstellungen f\u00fcr die Datenbankverbindung<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wir wollen uns hier auf die Einrichten der Laravel Anwendung beschr\u00e4nken und nicht noch zus\u00e4tzlich die Installation einer MySQL Datenbank beschreiben. Hierzu finden Sie mehr Informationen <a href=\"https:\/\/via-internet.de\/blog\/category\/database\/mysql\/\" target=\"_blank\" aria-label=\"an anderer Stelle (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">an anderer Stelle<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5-datenbank-sqlite-verwenden\">Datenbank SQLite verwenden<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c4ndern Sie  den nachfolgenden Eintrag (im obigen Beispiel in Zeile 10):<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">DB_CONNECTION=sqlite<\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"889\" height=\"34\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-26.png\" alt=\"\" class=\"wp-image-8223\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-26.png 889w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-26-300x11.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-26-768x29.png 768w\" sizes=\"auto, (max-width: 889px) 100vw, 889px\" \/><figcaption class=\"wp-element-caption\">sqlite als Datenbank einstellen<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"6-leere-datenbankdatei-erstellen\">Leere Datenbankdatei erstellen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Im n\u00e4chsten Schritt erstellen wir eine leeren Datenbank, indem wir im Ordner <code>database <\/code>eine Datei <code>database.sqlite<\/code> erstellen<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"337\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/03-create-empty-sqlite-database.png\" alt=\"\" class=\"wp-image-8194\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/03-create-empty-sqlite-database.png 628w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/03-create-empty-sqlite-database-300x161.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><figcaption class=\"wp-element-caption\">Initiale leere Datenbank-Datei erstellen<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Hinweis: Sie k\u00f6nnen eine leere Datei auch \u00fcber die Kommandozeile erstellen. Voraussetzung ist das Tool sqlite3 (<a aria-label=\"hier  (opens in a new tab)\" href=\"https:\/\/www.sqlite.org\/cli.html\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">hier <\/a>geht&#8217;s zum Download)<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sqlite3 database\\database.sqlite \"create table a(f int); drop table a;\"<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eine leere SQlite-Datenbank k\u00f6nnen sie auch mit diesem Kommando erstellen:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">touch database\/database.sqlite<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"7-tabellen-erstellen\">Tabellen erstellen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Im letzten Schritt werden in der Datenbank die f\u00fcr Laravel notwendigen Tabellen eingerichtet:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">php artisan migrate<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"530\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-migrate-sqlite-daatabase-with-default-tables-1024x530.png\" alt=\"\" class=\"wp-image-8195\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-migrate-sqlite-daatabase-with-default-tables-1024x530.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-migrate-sqlite-daatabase-with-default-tables-300x155.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-migrate-sqlite-daatabase-with-default-tables-768x397.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-migrate-sqlite-daatabase-with-default-tables.png 1052w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Migration der Tabellen durchf\u00fchren<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Hinweis: Die vorhandenen Tabellen k\u00f6nnen Sie sich \u00fcber die Kommandozeile anzeigen lassen:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"1\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sqlite3.exe .\\database\\database.sqlite \".tables\"<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"82\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-view-tables-1024x82.png\" alt=\"\" class=\"wp-image-8206\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-view-tables-1024x82.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-view-tables-300x24.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-view-tables-768x61.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-view-tables-1536x122.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/04-view-tables.png 1695w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Vorhandene Tabellen in der Datenbank<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"8-installation-und-konfiguration-des-frontend\">Installation und Konfiguration des Frontend<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Um mit dem  Frontend  arbeiten zu k\u00f6nnen m\u00fcssen zu ersten die notwendigen Komponenten installiert und das Frontend erstellt werden:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">npm install\nnpm run dev<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"9-anzeigen-der-anwendung\">Anzeigen der Anwendung<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die grundlegende Installation und Konfiguration ist abgeschlossen. Starten Sie die Anwendung durch das nachfolgende Kommando:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">php artisan serve<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"120\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/05-start-server-1024x120.png\" alt=\"\" class=\"wp-image-8201\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/05-start-server-1024x120.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/05-start-server-300x35.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/05-start-server-768x90.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/05-start-server.png 1177w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Lokalen Webserver starten<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u00d6ffnen Sie die Anwendung im Browser \u00fcber den Link <a href=\"http:\/\/127.0.0.1:8000\" class=\"ek-link\">http:\/\/127.0.0.1:8000<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/06-app-in-browser-1024x640.png\" alt=\"\" class=\"wp-image-8204\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/06-app-in-browser-1024x640.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/06-app-in-browser-300x187.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/06-app-in-browser-768x480.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/06-app-in-browser.png 1154w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Startseite der Anwendung<\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"10-anmeldung-und-authentifizierung\">Anmeldung und Authentifizierung<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Die erstelle Laravel-Anwendung enth\u00e4lt bereits die Funktionalit\u00e4t, das sich Benutzer Registrieren und Anmelden k\u00f6nnen. Hierzu finden Sie auf der Startseite rechts oben entsprechende Links.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"155\" height=\"42\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-24.png\" alt=\"\" class=\"wp-image-8210\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-24.png 155w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-24-150x42.png 150w\" sizes=\"auto, (max-width: 155px) 100vw, 155px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Mit den verwendeten  Standardeinstellungen reicht zum Einrichten des neuen Benutzer der Name, die E-Mail und das Passwort.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um eine h\u00f6here Sicherheit zu erreichen, werden diese Einstellungen so ge\u00e4ndert, das einen Best\u00e4tigungsmail an den Benutzer gesendet wird. Erst durch den Klick auf den darin enthaltenen Best\u00e4tigungslink wird die Einrichtung des Benutzers abgeschlossen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"11-e-mail-verification-einrichten\">E-Mail Verification einrichten<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Das Einrichten dieser<a aria-label=\" Email Verification (opens in a new tab)\" href=\"https:\/\/jetstream.laravel.com\/2.x\/features\/registration.html#email-verification\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\"> E-Mail Verification<\/a> erfolgt in mehreren Schritten:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"12-aktivieren-des-features--emailverification--in-der-datei--configfortifyphp-\">Aktivieren des Features <code>emailVerification <\/code>in der Datei<code> config\/fortify.php<\/code><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"305\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/11-1-enable-verification-email-1024x305.png\" alt=\"\" class=\"wp-image-8211\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/11-1-enable-verification-email-1024x305.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/11-1-enable-verification-email-300x89.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/11-1-enable-verification-email-768x229.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/11-1-enable-verification-email.png 1162w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Einrichten der emailVerification<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"13-hinzuf%C3%BCgen-der-nachfolgenden-anweisung-im-benutzermodels--appmodelsuserpsp-\">Hinzuf\u00fcgen eines Interface im Benutzermodels<code> app\/Models\/User.psp<\/code><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">use\u00a0Illuminate\\Contracts\\Auth\\MustVerifyEmail;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"14-erweitern-des-klassendefinition-im-benutzermodels--appmodelsuserpsp-\">Erweitern des Klassendefinition im Benutzermodels<code> app\/Models\/User.psp<\/code><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class User extends Authenticatable implements MustVerifyEmail<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"325\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-13-um-17.44.29-1024x325.png\" alt=\"\" class=\"wp-image-8651\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-13-um-17.44.29-1024x325.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-13-um-17.44.29-300x95.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-13-um-17.44.29-768x243.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-13-um-17.44.29-1536x487.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-13-um-17.44.29-2048x649.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"> Einrichten der emailVerification <\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"15-\">Festlegen der E-Mail Konfiguration<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Damit Laravel eine E-Mail versenden kann wird der Zugang zu einem E-Mail Server verwendet. Hier ben\u00f6tigen wir die Zugangsdaten f\u00fcr den SMTP-Versand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Festgelegt werden diese Parameter wieder in der Datei <code>.env<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"997\" height=\"249\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/11-4-mail-config.png\" alt=\"\" class=\"wp-image-8234\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/11-4-mail-config.png 997w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/11-4-mail-config-300x75.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/11-4-mail-config-768x192.png 768w\" sizes=\"auto, (max-width: 997px) 100vw, 997px\" \/><figcaption class=\"wp-element-caption\">Mailkonfiguration<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die entsprechenden Werte h\u00e4ngen vom verwendeten Mailserver ab. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zuerst m\u00fcssen Sie bei ihrem Provider ein Mailkonto einrichten (Benutzer und Passwort). Testen Sie am besten diese Daten \u00fcber den von ihrem Provider bereitgestellten Webmailer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die weiteren Werte (Port, Protokoll) entnehmen Sie der Dokumentation ihres Providers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nachfolgend zwei Beispiele:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Provider<\/th><th>Strato<\/th><th>United Domains<\/th><\/tr><\/thead><tbody><tr><td>MAIL_MAILER<\/td><td>smtp<\/td><td>smtp<\/td><\/tr><tr><td>MAIL_HOST<\/td><td>smtp.strato.de<\/td><td>smtps.udag.de <\/td><\/tr><tr><td> MAIL_PORT <\/td><td>587<\/td><td>587<\/td><\/tr><tr><td> MAIL_ENCRYPTION <\/td><td>tls<\/td><td>tls<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Beispiele f\u00fcr die E-Mail-Konfiguration<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Starten Sie die Anwendung neu und richten Sie einen weiteren Benutzer ein<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">php artisan serve<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"120\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/05-start-server-1024x120.png\" alt=\"\" class=\"wp-image-8201\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/05-start-server-1024x120.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/05-start-server-300x35.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/05-start-server-768x90.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/05-start-server.png 1177w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Lokalen Webserver starten<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"registrierung-durchfuhren\">Registrierung durchf\u00fchren<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Starten Sie die Registrierung \u00fcber den Link <a href=\"http:\/\/127.0.0.1:8000\/register\" target=\"_blank\" aria-label=\"Register  (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Register <\/a>auf der Startseite.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"647\" height=\"840\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/12-1-registration.png\" alt=\"\" class=\"wp-image-8243\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/12-1-registration.png 647w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/12-1-registration-231x300.png 231w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Geben Sie die notwendigen Benutzerdaten ein. Best\u00e4tigen Sie ebenfalls die <em>Terms of Services,<\/em> falls diese aktiviert sind.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/12-2-registration.png\" alt=\"\" class=\"wp-image-8244\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Bei erfolgreichen Versand der Best\u00e4tigungsmail erscheint diese Anzeige. Sie erhalten ebenfalls eine Best\u00e4tigungsmail an die verwendete E-Mail-Adresse.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/12-3-registration.png\" alt=\"\" class=\"wp-image-8245\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u00d6ffnen Sie die E-Mail und klicken Sie auf den Best\u00e4tigungslink. Achten Sie darauf, das der Link im gleichen Browser ge\u00f6ffnet wird, mit dem Sie die Registrierung durchgef\u00fchrt haben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alternativ kopieren Sie einfach den Link, wechseln wieder zur\u00fcck in das Registrierungsfenster und f\u00fcgen den kopierten Link ein.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"594\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/12-4-registration-1024x594.png\" alt=\"\" class=\"wp-image-8246\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/12-4-registration-1024x594.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/12-4-registration-300x174.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/12-4-registration-768x445.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/12-4-registration.png 1035w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Danach befinden Sie sich auf dem Dashboard der Anwendung. Die Registrierung hat somit funktioniert.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"690\" height=\"488\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-27.png\" alt=\"\" class=\"wp-image-8250\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-27.png 690w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-27-300x212.png 300w\" sizes=\"auto, (max-width: 690px) 100vw, 690px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"mogliche-konfigurationsfehler\">M\u00f6gliche Konfigurationsfehler<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"e-mail-server-ist-falsch\">E-Mail Server ist falsch<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Fehlermeldung: <em>Der angegebene Host ist unbekannt<\/em><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"443\" height=\"417\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-28-e1627740863807.png\" alt=\"\" class=\"wp-image-8253\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-28-e1627740863807.png 443w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-28-e1627740863807-300x282.png 300w\" sizes=\"auto, (max-width: 443px) 100vw, 443px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"685\" height=\"304\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-29.png\" alt=\"\" class=\"wp-image-8254\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-29.png 685w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-29-300x133.png 300w\" sizes=\"auto, (max-width: 685px) 100vw, 685px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"port-ist-falsch\">Port ist falsch<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Fehlermeldung: <em>Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte<\/em><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"442\" height=\"420\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-30.png\" alt=\"\" class=\"wp-image-8255\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-30.png 442w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-30-300x285.png 300w\" sizes=\"auto, (max-width: 442px) 100vw, 442px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"314\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-31.png\" alt=\"\" class=\"wp-image-8256\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-31.png 652w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-31-300x144.png 300w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"benutzername-oder-passwort-sind-falsch\">Benutzername oder Passwort sind falsch<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Fehlermeldung: <em>Authentication failed: wrong user\/password<\/em><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"443\" height=\"414\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-32.png\" alt=\"\" class=\"wp-image-8257\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-32.png 443w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-32-300x280.png 300w\" sizes=\"auto, (max-width: 443px) 100vw, 443px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"390\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-33.png\" alt=\"\" class=\"wp-image-8258\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-33.png 829w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-33-300x141.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-33-768x361.png 768w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"11-vorbereiten-der-views\">Anpassung der Jetstream-Komponenten<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die erstelle Laravel-Jetstream Anwendung beinhaltet bereits &#8220;von Haus aus&#8221; einen gro\u00dfen Funktionsumfang. Jede einzelnen Funktionalit\u00e4t wird in den meisten F\u00e4llen durch mindestens zwei Dateien realisiert:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>eine PHP-Klasse, welche die Funktionalit\u00e4t umsetzt (Programmcode)<\/li>\n\n\n\n<li>eine Blade-Template, das die Ausgabe (Benutzersicht, <strong>View<\/strong>) umsetzt<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Die Views werden z. B in dem nachfolgendem Ordner gespeichert:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">vendor\\laravel\\jetstream\\resources\\views<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Um diese <strong>Views<\/strong> innerhalb unserer Anwendung anpassen zu k\u00f6nnen, m\u00fcssen sie an einer anderen Stelle gespeichert werden. Sonst werden unsere \u00c4nderungen z. B. nach jedem Update wieder gel\u00f6scht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wie kopieren diese durch den nachfolgenden Befehl:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">php artisan vendor:publish --tag=jetstream-views<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"68\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-34-1024x68.png\" alt=\"\" class=\"wp-image-8263\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-34-1024x68.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-34-300x20.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-34-768x51.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-34-1536x102.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-34.png 1601w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die Kopien finden Sie im Ordner<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">resources\\views\\vendor\\jetstream<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"livewire-views\">Livewire Views<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">php artisan livewire:publish<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch werden die nachfolgenden Dateien und Ordner erstellt:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">config\/livewire.php<br>public\/vendor\/<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">config\/livewire.php\npublic\/vendor\/livewire\/livewire.js\npublic\/vendor\/livewire\/livewire.js.map\npublic\/vendor\/livewire\/manifest.json\nresources\/views\/vendor\/livewire\/bootstrap.blade.php\nresources\/views\/vendor\/livewire\/simple-bootstrap.blade.php\nresources\/views\/vendor\/livewire\/simple-tailwind.blade.php\nresources\/views\/vendor\/livewire\/tailwind.blade.php<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"weitere-anpassungen\">Weitere Anpassungen<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"terms-of-services-aktivieren\">Terms of Services aktivieren<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aktivieren Sie dazu das Feature <code>termsAndPrivacyPolicy<\/code> in der Datei <code>config\/jetstream.php<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"323\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-35-1024x323.png\" alt=\"\" class=\"wp-image-8266\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-35-1024x323.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-35-300x95.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-35-768x242.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-35.png 1248w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch sehen sie im Registrierungsdialog ein zus\u00e4tzliches Optionsfeld<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"436\" height=\"100\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-36.png\" alt=\"\" class=\"wp-image-8267\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-36.png 436w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-36-300x69.png 300w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"andern-der-sprache\">\u00c4ndern der Sprache<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bearbeiten Sie in der Datei <code>config\/app.php<\/code> die Einstellung <code>locale<\/code>. \u00c4ndern Sie den Wert auf <code>'de'<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"716\" height=\"150\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-37.png\" alt=\"\" class=\"wp-image-8270\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-37.png 716w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-37-300x63.png 300w\" sizes=\"auto, (max-width: 716px) 100vw, 716px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nach einem Neustart der Anwendung werden aber weiterhin die englischen Texte angezeigt. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Ursache liegt an der nicht vorhandenen deutschen \u00dcbersetzung der verwendeten Texte.  Pr\u00fcfen Sie einfach den Ordner mit den vorhandenen \u00dcbersetzungen: <code>resources\/lang<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es gibt nur einen Unterordner <code>en<\/code> f\u00fcr die englischen Texte:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"356\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-38-1024x356.png\" alt=\"\" class=\"wp-image-8271\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-38-1024x356.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-38-300x104.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-38-768x267.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-38.png 1163w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Zus\u00e4tzlich zu den \u00dcbersetzungen muss noch ein weiterer Schritt erfolgen. Um ihre Anwendung komplett auf Mehrsprachlichkeit umzustellen d\u00fcrfen keine Texte direkt angegeben werden. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Betrachten wir hierzu die Startseite, speziell die Links in der rechten oberen Ecke:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"155\" height=\"42\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-24.png\" alt=\"\" class=\"wp-image-8210\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-24.png 155w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-24-150x42.png 150w\" sizes=\"auto, (max-width: 155px) 100vw, 155px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Der View f\u00fcr die Startseite wird in der Datei <code>resources\/views\/welcome.blade.php<\/code> definiert:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"382\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-39-1024x382.png\" alt=\"\" class=\"wp-image-8275\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-39-1024x382.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-39-300x112.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-39-768x286.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-39-1536x572.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-39.png 1538w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wir sehen, das hier der Text direkt in englischer Sprache angegeben wird.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;a href=\"{{ route('register') }}\" class=\"...\">Register&lt;\/a><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Es ist sehr schwierig, eine automatische \u00dcbersetzung f\u00fcr alle Texte durchzuf\u00fchren, wenn nicht angegeben wird, ob ein bestimmter Text \u00fcbersetzt werden soll. Einfach alle Texte zu \u00fcbersetzen kann zu Problemen f\u00fchren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Daher wird bei Laravel der Weg gew\u00e4hlt, explizit anzugeben, ob ein Text \u00fcbersetzt werden soll.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Angabe <em>der nachfolgende Text soll \u00fcbersetzt werden<\/em> erfolgt mit Hilfe der Funktion <code>__ <\/code>(Der Name der Funktion lautet tats\u00e4chlich <code>__<\/code>, als zwei Unterstriche)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anstatt<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Register<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">schreiben wir nun<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{{\u00a0__('Register')\u00a0}}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch erkennt Laravel (speziell die Blade Template Engine), das hier eine \u00dcbersetzung durchgef\u00fchrt werden soll und sucht eine passenden \u00dcbersetzungstext.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hier kommt nun der bereits angesprochen Ordner <code>resources\/lang<\/code> ins Spiel. Erstellen Sie in diesem Ordner eine Datei <code>de,json<\/code> und verwenden Sie als Inhalt den nachfolgenden Text:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"826\" height=\"236\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-40.png\" alt=\"\" class=\"wp-image-8276\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-40.png 826w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-40-300x86.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-40-768x219.png 768w\" sizes=\"auto, (max-width: 826px) 100vw, 826px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nach einen Neustart der Anwendung sehen wir gew\u00fcnschte Ergebnis:<\/p>\n\n\n<div class=\"wp-block-image caption-align-center\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"171\" height=\"46\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-41.png\" alt=\"\" class=\"wp-image-8281\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Den gew\u00fcnschten \u00dcbersetzungstext findet Blades anhand des angegebenen Textes innerhalb der Funktion __:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table><thead><tr><th>welcome.blade.php<\/th><th>de.json<\/th><\/tr><\/thead><tbody><tr><td><img decoding=\"async\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-44.png\" alt=\"\"><\/td><td><img decoding=\"async\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-43.png\" alt=\"\"><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die \u00dcbersetzung der Anwendung erfordert somit f\u00fcr alle Texte die gleichen Schritte<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ermitteln des Views mit dem zu \u00fcbersetzenden Text, z. B. <em>Sample Text<\/em><\/li>\n\n\n\n<li>Einbinden des Textes in die Funktion , z. B. <code>{{ ('<em>Sample text<\/em>') }}<\/code><\/li>\n\n\n\n<li>Hinzuf\u00fcgen der \u00dcbersetzung in der Datei <code>de.json<\/code>, z. B.  <em><code>\"Sample text<\/code>&#8220;: Beispieltext<\/em>&#8220;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"erstellen-einer-neue-startseite\">Erstellen einer neue Startseite<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die Startseite entspricht immer noch der Standardanwendung. Der entsprechende View ist <code>welcome.blade.php<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zur Startseite wird dieser View aber nicht durch den Namen, sondern durch eine Einstellung in der Datei <code>routes\/web.php<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"309\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-45-1024x309.png\" alt=\"\" class=\"wp-image-8296\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-45-1024x309.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-45-300x91.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-45-768x232.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-45.png 1053w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Mit Hilfe des von Laravel verwendeten <a aria-label=\"Routing  (opens in a new tab)\" href=\"https:\/\/laravel.com\/docs\/8.x\/routing\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">Routing<\/a>, wird festgelegt, welcher View angezeigt wird, wenn eine bestimmte URI aufgerufen wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In der vorhandenen Einstellung legt fest, das bei der Uri <code>'\/'<\/code> der View <code>'welcome'<\/code> angezeigt wird.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"einfache-startseite-erstellen\">Einfache Startseite erstellen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wir verwenden hier das in der <a aria-label=\"Laravel Dokumentation (opens in a new tab)\" href=\"https:\/\/laravel.com\/docs\/8.x\/views\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">Laravel Dokumentation<\/a> beschrieben einfache Beispiel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Erstellen Sie die Datei Datei <code>resources\/views\/home.blade.php<\/code>. Verwenden Sie als Inhalt den nachfolgenden Text<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;html>\n    &lt;body>\n        &lt;h1>Hello, {{ $name }}&lt;\/h1>\n    &lt;\/body>\n&lt;\/html><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"958\" height=\"335\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-46.png\" alt=\"\" class=\"wp-image-8297\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-46.png 958w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-46-300x105.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-46-768x269.png 768w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"routing-anpassen\">Routing anpassen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Passen Sie dann die Datei <code>routes\/web.php<\/code> an.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Route::get('\/welcome', function () {\n    return view('welcome');\n})->name('welcome');\n\nRoute::get('\/', function () {\n    return view('home', ['name' => 'Laravel']);\n});<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wir \u00e4ndern die neue Startseite mit der Uri <code>\/<\/code> und stellen die alte Startseite unter einer neuen Uri <code>\/welcome<\/code> bereit.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"846\" height=\"275\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-49.png\" alt=\"\" class=\"wp-image-8304\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-49.png 846w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-49-300x98.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-49-768x250.png 768w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"neue-startseite-anzeigen\">Neue Startseite anzeigen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u00d6ffnen Sie nun wieder die Seite <code>http:\/\/localhost:8000<\/code> oder aktualisieren Sie ein bereits ge\u00f6ffnetes Browserfenster:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"616\" height=\"225\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-50.png\" alt=\"\" class=\"wp-image-8306\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-50.png 616w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-50-300x110.png 300w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die vorherige Startseite k\u00f6nnen wir \u00fcber die Uri <code>\/welcome<\/code> erreichen<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"519\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-51-1024x519.png\" alt=\"\" class=\"wp-image-8308\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-51-1024x519.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-51-300x152.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-51-768x390.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/image-51.png 1167w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"neue-seite-zur-navigation-hinzufugen\">Neue Seite zur Navigation hinzuf\u00fcgen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Erweitern Sie die Daten resources\/views\/navigation-menu.blade.php um einen Eintrag:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"9-14\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- Navigation Links -->\n&lt;div class=\"hidden space-x-8 sm:-my-px sm:ml-10 sm:flex\">\n    &lt;x-jet-nav-link href=\"{{ route('dashboard') }}\" \n                    :active=\"request()->routeIs('dashboard')\">\n         {{ __('Dashboard') }}\n    &lt;\/x-jet-nav-link>\n&lt;\/div>\n\n&lt;div class=\"hidden space-x-8 sm:-my-px sm:ml-10 sm:flex\">\n    &lt;x-jet-nav-link href=\"{{ route('welcome') }}\" \n                    :active=\"request()->routeIs('welcome')\">\n         {{ __('Welcome') }}\n    &lt;\/x-jet-nav-link>\n&lt;\/div><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"komponenten\">Komponenten<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"komponente-erstellen\">Komponente erstellen<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">php artisan make:component MyComponent<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"blade-komponenten-registrieren\">Blade-Komponenten registrieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can register your jetstream blade components in&nbsp;<code>App\\Providers\\JetstreamServiceProvider.php<\/code>&nbsp;located in&nbsp;<code>app\\Providers<\/code>&nbsp;folder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcgen sie die nachfolgende Funktion hinzu:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">protected function registerComponent(string $component) {\n    \\Illuminate\\Support\\Facades\\Blade::component('jetstream::components.'.$component, 'jet-'.$component);\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der nachfolgende Programmcode registriert ihre Komponente:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public function register() {\n    $this->registerComponent('subform');\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sie k\u00f6nnen diese nun wie folgt nutzen:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;x-jet-subform><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>TL;DR Der Code f\u00fcr die in diesem Post erstelle Anwendung liegt hier. Laravel \u00d6kosystem Laravel Breeze Laravel Breeze ist eine minimale, einfache Implementierung aller Authentifizierungsfunktionen von Laravel, einschlie\u00dflich Anmeldung, Registrierung, Pa\u00dfwortzur\u00fccksetzung, E-Mail-Best\u00e4tigung und Pa\u00dfwortbest\u00e4tigung. Die Standardansichtsebene von Laravel Breeze besteht aus einfachen Blade-Vorlagen, die mit Tailwind CSS gestaltet sind. Breeze bietet einen wunderbaren Ausgangspunkt f\u00fcr den Beginn einer frischen Laravel-Anwendung. Breeze &amp; Inertia Laravel Breeze bietet auch eine Frontend-Implementierung von Inertia.js die von Vue oder React unterst\u00fctzt wird. Laravel Jetstream (Link) Jetstream bietet ein sch\u00f6n gestaltetes Anwendungsger\u00fcst f\u00fcr Laravel und umfasst Anmeldung, Registrierung, E-Mail-Verifizierung, Zwei-Faktor-Authentifizierung, Sitzungsverwaltung, API-Unterst\u00fctzung \u00fcber Laravel Sanctum und [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8087,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[99,57],"tags":[],"class_list":["post-7942","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","category-php"],"jetpack_featured_media_url":"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/Laravel-Installation-einer-Beispielanwendung.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/7942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/comments?post=7942"}],"version-history":[{"count":69,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/7942\/revisions"}],"predecessor-version":[{"id":9303,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/7942\/revisions\/9303"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/media\/8087"}],"wp:attachment":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/media?parent=7942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/categories?post=7942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/tags?post=7942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}