News · Laravel · 27.07.2024

Laravel & Nova: So holst du alles raus

nach über zehn Jahren in der Webentwicklung mit Laravel habe ich viele Tools und Frameworks ausprobiert. Eines, das mich besonders beeindruckt hat, ist Laravel...

Laravel & Nova: So holst du alles raus

nach über zehn Jahren in der Webentwicklung mit Laravel habe ich viele Tools und Frameworks ausprobiert. Eines, das mich besonders beeindruckt hat, ist Laravel Nova. Nova ist ein Admin-Panel für Laravel-Anwendungen, das nicht nur elegant und leistungsfähig ist, sondern auch unglaublich flexibel. Heute möchte ich euch zeigen, wie ihr das Beste aus Laravel Nova herausholen könnt. Also, schnappt euch eure Tastatur und lasst uns loslegen!

Was ist Laravel Nova?

Laravel Nova ist ein Admin-Panel für Laravel-Anwendungen, das eine saubere und intuitive Benutzeroberfläche bietet. Es wurde entwickelt, um Entwicklern die Erstellung von Verwaltungsoberflächen für ihre Anwendungen zu erleichtern, ohne dass sie sich mit komplexem Code herumschlagen müssen. Nova bietet viele nützliche Funktionen, darunter Ressourcenverwaltung, benutzerdefinierte Tools, Filter, Aktionen und vieles mehr.

Installation von Laravel Nova

Bevor wir loslegen können, müssen wir Nova in unserer Laravel-Anwendung installieren. Zuerst müsst ihr eine Lizenz für Nova erwerben und die Dateien herunterladen. Installation: Fügt das Nova-Repository zu eurem Composer composer.json hinzu:
php
"repositories": [
            {
                "type": "composer",
                "url": "https://nova.laravel.com"
            }
        ]
2. Installiert Nova über Composer: composer require laravel/nova 3. Führt die Nova-Installation aus:
shell
php artisan nova:install
4. Führt die Migrationen aus:
shell
php artisan migrate
5. Fügt die Nova-Route in routes/web.php hinzu:
php
use Laravel\Nova\Nova;
        use Illuminate\Support\Facades\Route;

        Route::middleware(['web'])
            ->prefix('admin')
            ->group(function () {
                Nova::routes();
            });
Und schon habt ihr Laravel Nova installiert und einsatzbereit!

Ressourcen in Nova erstellen

Eine der Hauptfunktionen von Nova ist die Verwaltung von Ressourcen. Eine Ressource in Nova entspricht einem Eloquent-Modell in Laravel.

Beispiel: Erstellen einer User-Ressource:

1. Generiert eine Ressource mit dem Artisan-Befehl:
shell
php artisan nova:resource User
2. Nova erstellt automatisch die Datei app/Nova/User.php. Hier könnt ihr die Darstellung und Verwaltung eurer User-Ressource anpassen:
php
sortable(),
                    Text::make('Name')->sortable()->rules('required', 'max:255'),
                    Email::make('Email')->sortable()->rules('required', 'email', 'max:254'),
                    Password::make('Password')->onlyOnForms()->rules('required', 'min:8'),
                    DateTime::make('Created At')->exceptOnForms(),
                    DateTime::make('Updated At')->exceptOnForms(),
                ];
            }
        }

Benutzerdefinierte Tools und Dashboards

Mit Nova könnt ihr auch benutzerdefinierte Tools und Dashboards erstellen, um eure Anwendung weiter anzupassen und zu erweitern.

Beispiel: Erstellen eines benutzerdefinierten Tools:

1. Generiert ein Tool mit dem Artisan-Befehl:
shell
php artisan nova:tool MyTool
2. Nova erstellt automatisch das Verzeichnis nova-components/MyTool. Hier könnt ihr den Code für euer Tool hinzufügen. 3.Registriert euer Tool in app/Providers/NovaServiceProvider.php: <?php namespace App\Providers; use Laravel\Nova\Nova; use Laravel\Nova\Cards\Help; use Illuminate\Support\Facades\Gate; use Laravel\Nova\NovaApplicationServiceProvider; class NovaServiceProvider extends NovaApplicationServiceProvider { public function tools() { return [ new \NovaComponents\MyTool\MyTool(), ]; } }

Filter und Aktionen

Nova bietet leistungsstarke Filter- und Aktionsfunktionen, mit denen ihr eure Ressourcen weiter anpassen könnt.

Beispiel: Erstellen eines Filters:

1. Generiert einen Filter mit dem Artisan-Befehl:
shell
php artisan nova:filter UserType
2. Nova erstellt automatisch die Datei app/Nova/Filters/UserType.php. Hier könnt ihr euren Filter definieren:
php
where('type', $value);
            }

            public function options(Request $request)
            {
                return [
                    'Admin' => 'admin',
                    'User' => 'user',
                ];
            }
        }

Beispiel: Erstellen einer Aktion:

1. Generiert eine Aktion mit dem Artisan-Befehl:
shell
php artisan nova:action PromoteUser
2. Nova erstellt automatisch die Datei app/Nova/Actions/PromoteUser.php. Hier könnt ihr eure Aktion definieren:
php
type = 'admin';
                    $model->save();
                }

                return Action::message('User promoted to admin!');
            }
        }
Tipps Nutze Policies: Stelle sicher, dass du Laravel Policies nutzt, um den Zugriff auf Nova-Ressourcen zu steuern. Das erhöht die Sicherheit und Kontrolle. Verwende Custom Cards: Custom Cards ermöglichen es dir, spezielle Informationen und Statistiken in deinem Dashboard anzuzeigen. Nutze sie, um wertvolle Einblicke zu bieten. Regelmäßige Updates: Halte Nova und Laravel auf dem neuesten Stand, um die neuesten Funktionen und Sicherheitsupdates zu nutzen. Dokumentation: Nutze die umfangreiche Nova-Dokumentation und Beispiele, um das volle Potenzial des Frameworks auszuschöpfen. Einfache Benutzeroberfläche: Halte die Benutzeroberfläche einfach und intuitiv, um die Nutzung für Administratoren zu erleichtern. Optimierte Datenbankabfragen: Achte darauf, dass deine Nova-Ressourcen und -Aktionen optimierte Datenbankabfragen verwenden, um die Performance zu verbessern. Tests: Führe regelmäßig Tests durch, um sicherzustellen, dass deine Nova-Implementierung reibungslos funktioniert. Laravel Nova ist ein leistungsstarkes und flexibles Admin-Panel, das dir hilft, Verwaltungsoberflächen für deine Anwendungen schnell und effizient zu erstellen. Mit den richtigen Tools und Best Practices kannst du das volle Potenzial von Nova ausschöpfen und beeindruckende Admin-Panels bauen. Also, worauf wartest du noch? Probier es aus und sieh selbst, wie viel einfacher die Verwaltung deiner Laravel-Anwendung sein kann!
Quelle: https://birdapi.de/blog/laravel/laravel-und-nova-so-holst-du-alles-raus