{"id":8342,"date":"2024-09-30T15:03:01","date_gmt":"2024-09-30T13:03:01","guid":{"rendered":"https:\/\/via-internet.de\/blog\/?p=8342"},"modified":"2025-09-19T11:35:10","modified_gmt":"2025-09-19T09:35:10","slug":"laravel-cookbook-2","status":"publish","type":"post","link":"https:\/\/via-internet.de\/blog\/2024\/09\/30\/laravel-cookbook-2\/","title":{"rendered":"Laravel | Cookbook"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Tutorials, Links<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/kinsta.com\/blog\/laravel-tutorial\/#6-best-free-laravel-tutorial-sites\">https:\/\/kinsta.com\/blog\/laravel-tutorial\/#6-best-free-laravel-tutorial-sites<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/laravel-news.com\/\">https:\/\/laravel-news.com\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/laravel-news.com\/learning-laravel-in-2021\">https:\/\/laravel-news.com\/learning-laravel-in-2021<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/laravel.com\/docs\/8.x\">https:\/\/laravel.com\/docs\/8.x<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.tutsmake.com\/category\/laravel-tutorial\/\">https:\/\/www.tutsmake.com\/category\/laravel-tutorial\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.tutsmake.com\/laravel-interview-questions-answers-for-1235-year-experience\/\">https:\/\/www.tutsmake.com\/laravel-interview-questions-answers-for-1235-year-experience\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.larashout.com\/\">https:\/\/www.larashout.com\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/learn2torials.com\/category\/laravel\">https:\/\/learn2torials.com\/category\/laravel<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/eloquentbyexample.com\/\">https:\/\/eloquentbyexample.com\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/laravel.com\/docs\/8.x\/eloquent#introduction\">https:\/\/laravel.com\/docs\/8.x\/eloquent#introduction<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Erste Schritte<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Erstellen einer ersten Anwendung<\/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=\"\">laravel new app --jet\ncd app<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Datenbankkonfiguraton anpassen in der Datei .env<\/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=\"\">DB_HOST=<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Datenbank 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=\"\">composer update \nphp artisan key:generate\nphp artisan migrate<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Livewire Komponenten hinzuf\u00fcgen<\/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 vendor:publish --tag=jetstream-views<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Frontend 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=\"\">npm install\nnpm run dev\nphp artisan serve<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Upgrade Composer<\/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=\"\">composer self-update --2<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Datenbanken<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/laravelarticle.com\/laravel-ajax-datatable-crud\">https:\/\/laravelarticle.com\/laravel-ajax-datatable-crud<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Controller<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Visitor Count<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/postsrc.com\/posts\/how-to-implement-visitor-views-or-visitor-counter-in-laravel-application\">https:\/\/postsrc.com\/posts\/how-to-implement-visitor-views-or-visitor-counter-in-laravel-application<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Links<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>https:\/\/laravel-news.com\/<\/li>\n\n\n\n<li>https:\/\/laravel-news.com\/learning-laravel-in-2021<\/li>\n\n\n\n<li>https:\/\/laravel.com\/docs\/8.x<\/li>\n\n\n\n<li>https:\/\/www.tutsmake.com\/category\/laravel-tutorial\/<\/li>\n\n\n\n<li>https:\/\/www.tutsmake.com\/laravel-interview-questions-answers-for-1235-year-experience\/<\/li>\n\n\n\n<li>https:\/\/www.larashout.com\/<\/li>\n\n\n\n<li>https:\/\/learn2torials.com\/category\/laravel<\/li>\n\n\n\n<li>https:\/\/eloquentbyexample.com\/<\/li>\n\n\n\n<li>https:\/\/laravel.com\/docs\/8.x\/eloquent#introduction<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Routing<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Alle Routen anzeigen<\/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 route:list<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Routen dynamisch erzeugen<\/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=\"\">composer require illuminate\/support<\/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=\"\">use Illuminate\\Support\\Facades\\File;\n\nfunction generateRoutes($basePath, $baseNamespace = 'Pages', $routePrefix = '\/')\n{\n    $files = File::allFiles($basePath);\n\n    foreach ($files as $file) {\n        $relativePath = str_replace([$basePath, '.vue'], '', $file->getRelativePathname());\n        $routeName = str_replace(DIRECTORY_SEPARATOR, '.', $relativePath);\n        $routeUri = str_replace(DIRECTORY_SEPARATOR, '\/', $relativePath);\n\n        \/\/ Example: if file is `resources\/js\/Pages\/Examples\/layout-discord.vue`\n        \/\/ $routeName = 'Examples.layout-discord';\n        \/\/ $routeUri = 'examples\/layout-discord'\n\n        Route::get($routePrefix . $routeUri, function () use ($relativePath, $baseNamespace) {\n            return Inertia::render($baseNamespace . str_replace('\/', '\\\\', $relativePath));\n        })->name($routeName);\n    }\n}\n\ngenerateRoutes(resource_path('js\/Pages'));<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Mail \/ SMTP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lokaler Mailserver f\u00fcr SMTP Testing<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/mailhog\/MailHog\" class=\"ek-link\">MailHog: Web and API based SMTP testing<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">UI<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Versionen anzeigen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In dem entsprechenden Blade-View:<\/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;p class=\"mb-2\">\n    Laravel Version: &lt;span class=\"font-mono\">{{ $page.props.laravelVersion }}&lt;\/span>&lt;br>\n    PHP Version: &lt;span class=\"font-mono\">{{ $page.props.phpVersion }}&lt;\/span>\n&lt;\/p>&lt;\/p><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Option A \u2014 Routing anpasssen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>routes\/web.php<\/code><\/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=\"\">use Illuminate\\Foundation\\Application;\nuse Illuminate\\Support\\Facades\\Route;\nuse Inertia\\Inertia;\n\nRoute::get('\/', function () {\n    return Inertia::render('Welcome', [\n        'laravelVersion' => Application::VERSION, \/\/ or app()->version()\n        'phpVersion'     => PHP_VERSION,\n    ]);\n});\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Option B \u2014 Global jeder Seite \u00fcbergeben<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>app\/Http\/Middleware\/HandleInertiaRequests.php<\/code><\/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=\"\">use Illuminate\\Foundation\\Application;\nuse Inertia\\Middleware;\nuse Illuminate\\Http\\Request;\n\nclass HandleInertiaRequests extends Middleware\n{\n    \/\/ ...\n\n    public function share(Request $request): array\n    {\n        return array_merge(parent::share($request), [\n             ... vorherige R\u00fcckgabewerte beibehalten\n            'laravelVersion' => Application::VERSION, \/\/ or app()->version()\n            'phpVersion'     => PHP_VERSION,\n        ]);\n    }\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Tutorials, Links Erste Schritte Erstellen einer ersten Anwendung Datenbankkonfiguraton anpassen in der Datei .env Datenbank erstellen Livewire Komponenten hinzuf\u00fcgen Frontend erstellen Upgrade Composer Datenbanken https:\/\/laravelarticle.com\/laravel-ajax-datatable-crud Controller Visitor Count https:\/\/postsrc.com\/posts\/how-to-implement-visitor-views-or-visitor-counter-in-laravel-application Links Routing Alle Routen anzeigen Routen dynamisch erzeugen Mail \/ SMTP Lokaler Mailserver f\u00fcr SMTP Testing MailHog: Web and API based SMTP testing UI Versionen anzeigen In dem entsprechenden Blade-View: Option A \u2014 Routing anpasssen routes\/web.php Option B \u2014 Global jeder Seite \u00fcbergeben app\/Http\/Middleware\/HandleInertiaRequests.php<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[16,99,57],"tags":[],"class_list":["post-8342","post","type-post","status-publish","format-standard","hentry","category-cookbook","category-laravel","category-php"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/8342","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=8342"}],"version-history":[{"count":4,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/8342\/revisions"}],"predecessor-version":[{"id":10434,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/8342\/revisions\/10434"}],"wp:attachment":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/media?parent=8342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/categories?post=8342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/tags?post=8342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}