{"id":9971,"date":"2024-04-14T19:30:00","date_gmt":"2024-04-14T17:30:00","guid":{"rendered":"https:\/\/via-internet.de\/blog\/?p=9971"},"modified":"2024-04-16T10:16:29","modified_gmt":"2024-04-16T08:16:29","slug":"laravel-erstellen-eines-blade-layouts","status":"publish","type":"post","link":"https:\/\/via-internet.de\/blog\/2024\/04\/14\/laravel-erstellen-eines-blade-layouts\/","title":{"rendered":"Laravel | Erstellen eines Blade Layouts"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"tl-dr\">TL;DR<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der Code f\u00fcr die in diesem Post erstelle Anwendung liegt <a href=\"https:\/\/github.com\/r14r\/Laravel_Tutorial_Erstellen-eines-Blade-Layouts\" data-type=\"link\" data-id=\"https:\/\/github.com\/r14r\/Laravel_Tutorial_Arbeiten-mit-htmx\">hier<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"laravel-okosystem\">Einrichten der Starter-App<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Erstellen der Starter App. In <a href=\"https:\/\/via-internet.de\/blog\/2024\/04\/10\/laravel-erstellen-einer-starter-app\/\" data-type=\"link\" data-id=\"https:\/\/via-internet.de\/blog\/2024\/04\/10\/laravel-erstellen-einer-starter-app\/\">diesem<\/a> Post beschreibe ich, wie sie eine Starter-App erstellen und die grundlegenden Anpassungen durchf\u00fchren k\u00f6nnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie k\u00f6nnen auch direkt mit dem dazugeh\u00f6rigen Repository starten:<\/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=\"\">\u276f git clone https:\/\/github.com\/r14r\/Laravel_Tutorial_Erstellen-einer-Starter-App App<\/pre>\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=\"\">\u276f cd App\n\u276f composer install\n\u276f npm install\n\u276f npm run build<\/pre>\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=\"\">\u276f cp .env.example  .env\n\u276f php artisan migrate\n\u276f php artisan key:generate<\/pre>\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=\"\">\u276f php artisan serve<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"701\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-1024x701.png\" alt=\"\" class=\"wp-image-9914\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-1024x701.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-300x205.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-768x526.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-1536x1051.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-2048x1402.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Motivation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Betrachten wir die Dashboard-Seite der Starter-App: <code>dashboard.blade.php<\/code>. Es f\u00e4llt auf, das nur der eigentliche Inhalt definiert wird (z. B. der Willkommens-Text in Zeile 11). Das eigentliche &#8220;Aussehen&#8221; (Layout) wird abgeleitet von dem generellen App-Layout. Dies wird durch die folgende erste Zele erreicht:<\/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-app-layout><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wir wollen Seiten entwicklen, die ein unterschiedliches Aussehen haben. Daher wollen wir neben dem generellen App-Layout noch weitere Layouts erstellen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein weiteres Layout soll z. B. eine Seitenleiste erhalten, wir wollen es <code>AppSidebarLayout<\/code> nennen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verwendet wird es dann, wenn als erste Zeile die folgende verwendet 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;x-app-sidebar-layout><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Neue Seite erstellen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Im ersten Schritt erstellen wir zuerst eine neue Seite<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Blade-Datei f\u00fcr neue Seite erstellen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kopieren sie die Datei <code>dashboard.blade.php<\/code> nach page_with_<code>sidebar.blade.php<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L\u00f6schen sie den Aufruf des Willkommens-Text in Zeile 11:<\/p>\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=\"\">&lt;x-app-layout>\n    &lt;x-slot name=\"header\">\n        &lt;h2 class=\"font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight\">\n            {{ __('Dashboard') }}\n        &lt;\/h2>\n    &lt;\/x-slot>\n\n    &lt;div class=\"py-12\">\n        &lt;div class=\"max-w-7xl mx-auto sm:px-6 lg:px-8\">\n            &lt;div class=\"bg-white dark:bg-gray-800 overflow-hidden shadow-xl sm:rounded-lg\">\n            &lt;\/div>\n        &lt;\/div>\n    &lt;\/div>\n&lt;\/x-app-layout>\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Navigationsleiste erweitern<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Erstellen Sie einen weiteren Navigationslink in der Datei <code>resources\/views\/navigation-menu.blade.php<\/code>:<\/p>\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=\"\">&lt;x-nav-link href=\"{{ route('page_with_sidebar') }}\" :active=\"request()->routeIs('page_with_sidebar')\">\n    {{ __('Page with Sidebar') }}\n&lt;\/x-nav-link><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"203\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.35.24-1024x203.png\" alt=\"\" class=\"wp-image-9974\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.35.24-1024x203.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.35.24-300x59.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.35.24-768x152.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.35.24-1536x304.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.35.24-2048x405.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Sie jetzt die Seite aufrufen, dann bekommen Sie einen Fehler: die Route wurde nicht gefunden<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"695\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.37.51-1024x695.png\" alt=\"\" class=\"wp-image-9975\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.37.51-1024x695.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.37.51-300x203.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.37.51-768x521.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.37.51-1536x1042.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.37.51-2048x1389.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Routing hinzuf\u00fcgen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Erweitern Sie die Datei <code>routes\/web.php<\/code> und die neue Route:<\/p>\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=\"\"> Route::get('\/page_with_sidebar', function () {\n        return view('page_with_sidebar');\n })->name('page_with_sidebar');<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Ergebnis<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">So sieht dann unsere Seite aus:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"230\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.42.27-1024x230.png\" alt=\"\" class=\"wp-image-9978\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.42.27-1024x230.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.42.27-300x67.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.42.27-768x172.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.42.27-1536x345.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.42.27-2048x460.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Neues Layout verwenden<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nun \u00e4ndern wir das Layout unserer neuen Seite in Zeile 1 und Zeile 14<\/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-app-sidebar-layout><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"363\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.43.58-1024x363.png\" alt=\"\" class=\"wp-image-9982\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.43.58-1024x363.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.43.58-300x106.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.43.58-768x272.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.43.58-1536x545.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.43.58.png 1698w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Sie jetzt alles speichern und die Seite aktualisieren (im Browser) bekommen sie wie zu Erwarten eine Fehlermeldung:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"253\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.45.28-1024x253.png\" alt=\"\" class=\"wp-image-9984\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.45.28-1024x253.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.45.28-300x74.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.45.28-768x190.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.45.28-1536x380.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.45.28-2048x506.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Lassen Sie uns also das neue Layout erstellen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Neues Layout erstellen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kopieren der Datei <code>resources\/views\/layouts\/app.blade.php<\/code> nach <code>resources\/views\/layouts\/app_with_sidebar.php<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"724\" height=\"306\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.48.42.png\" alt=\"\" class=\"wp-image-9985\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.48.42.png 724w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-14-um-19.48.42-300x127.png 300w\" sizes=\"auto, (max-width: 724px) 100vw, 724px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>TL;DR Der Code f\u00fcr die in diesem Post erstelle Anwendung liegt hier. Einrichten der Starter-App Erstellen der Starter App. In diesem Post beschreibe ich, wie sie eine Starter-App erstellen und die grundlegenden Anpassungen durchf\u00fchren k\u00f6nnen. Sie k\u00f6nnen auch direkt mit dem dazugeh\u00f6rigen Repository starten: Motivation Betrachten wir die Dashboard-Seite der Starter-App: dashboard.blade.php. Es f\u00e4llt auf, das nur der eigentliche Inhalt definiert wird (z. B. der Willkommens-Text in Zeile 11). Das eigentliche &#8220;Aussehen&#8221; (Layout) wird abgeleitet von dem generellen App-Layout. Dies wird durch die folgende erste Zele erreicht: Wir wollen Seiten entwicklen, die ein unterschiedliches Aussehen haben. Daher wollen wir neben dem [&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-9971","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\/9971","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=9971"}],"version-history":[{"count":6,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/9971\/revisions"}],"predecessor-version":[{"id":9988,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/9971\/revisions\/9988"}],"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=9971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/categories?post=9971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/tags?post=9971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}