{"id":9881,"date":"2024-04-10T17:00:45","date_gmt":"2024-04-10T15:00:45","guid":{"rendered":"https:\/\/via-internet.de\/blog\/?p=9881"},"modified":"2024-04-12T16:31:27","modified_gmt":"2024-04-12T14:31:27","slug":"laravel-einstieg-in-htmx","status":"publish","type":"post","link":"https:\/\/via-internet.de\/blog\/2024\/04\/10\/laravel-einstieg-in-htmx\/","title":{"rendered":"Laravel | Einstieg in &lt;\/> htmx"},"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_Arbeiten-mit-htmx\" 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 Laravel_Tutorial_Arbeiten-mit-htmx<\/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 composer install\n\u276f npm install\n\u276f npm run build\n\u276f php artisan<\/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\">htmx einrichten<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Installation<\/h4>\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 npm install htmx.org<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hinweis: Verwenden sie nicht das NPM Paket <code>htmx<\/code>, dies hat einen anderen Inhalt<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Seite f\u00fcr unsere Beipiele erstellen (htmx Playground)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Routing erstellen<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"293\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-routing-1024x293.png\" alt=\"\" class=\"wp-image-9923\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-routing-1024x293.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-routing-300x86.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-routing-768x220.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-routing-1536x439.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-routing.png 1574w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Seite erstellen: resources\/views\/playground.blade.php<\/h4>\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=\"\">cp resources\/views\/dashboard.blade.php resources\/views\/playground.blade.php<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Inhalt anpassen:<\/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>\n    &lt;x-slot name=\"header\">\n        &lt;h2 class=\"font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight\">\n            {{ __('Playground') }} for Laravel and &lt;&lt;span style=\"color:#3d72d7\">\/&lt;\/span>> htm&lt;span\n                    style=\"color:#3d72d7\">x&lt;\/span>\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                #\n            &lt;\/div>\n        &lt;\/div>\n    &lt;\/div>\n&lt;\/x-app-layout><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"258\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground-1-1024x258.png\" alt=\"\" class=\"wp-image-9926\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground-1-1024x258.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground-1-300x76.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground-1-768x193.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground-1-1536x387.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground-1-2048x516.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Navigationslinks anpassen<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"347\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-navigation-link-1-1024x347.png\" alt=\"\" class=\"wp-image-9929\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-navigation-link-1-1024x347.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-navigation-link-1-300x102.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-navigation-link-1-768x261.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-navigation-link-1-1536x521.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_add-navigation-link-1-2048x695.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Ergebnis<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"251\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_view-1-1024x251.png\" alt=\"\" class=\"wp-image-9928\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_view-1-1024x251.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_view-1-300x74.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_view-1-768x189.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_view-1-1536x377.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_page_playground_view-1-2048x503.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Ersten htmx Aufruf hinzuf\u00fcgen<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">API Aufruf einrichten<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Die Datei <code>routes\/api.php<\/code> erweitern:<\/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('\/htmx\/message', function () {\n    return response('Dies ist eine Nachricht', 200)->header('Content-Type', 'application\/json');\n});<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Playground Seite anpassen<\/h4>\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;div hx-get=\"\/api\/htmx\/message\">\n    Mitteilungen laden...\n&lt;\/div><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Ergebnis<\/h4>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"921\" height=\"532\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/htmx-hx-get-message-1.gif\" alt=\"\" class=\"wp-image-9935\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">htmx Beispiele<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Auf der htm<span style=\"color:#3d72d7\">x<\/span> &#8211; Projekteseite finden sie viele <a href=\"https:\/\/htmx.org\/examples\/\" data-type=\"link\" data-id=\"https:\/\/htmx.org\/examples\/\">Beispiele<\/a>. Wir wollen nun einige davon in Laravel umsetzen.<\/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: htmx einrichten Installation Hinweis: Verwenden sie nicht das NPM Paket htmx, dies hat einen anderen Inhalt Seite f\u00fcr unsere Beipiele erstellen (htmx Playground) Routing erstellen Seite erstellen: resources\/views\/playground.blade.php Inhalt anpassen: Navigationslinks anpassen Ergebnis Ersten htmx Aufruf hinzuf\u00fcgen API Aufruf einrichten Die Datei routes\/api.php erweitern: Playground Seite anpassen Ergebnis htmx Beispiele Auf der htmx &#8211; Projekteseite finden sie [&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-9881","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\/9881","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=9881"}],"version-history":[{"count":10,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/9881\/revisions"}],"predecessor-version":[{"id":9940,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/9881\/revisions\/9940"}],"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=9881"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/categories?post=9881"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/tags?post=9881"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}