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:
"repositories": [
{
"type": "composer",
"url": "https://nova.laravel.com"
}
]
2. Installiert Nova über Composer:
composer require laravel/nova
3. Führt die Nova-Installation aus:
php artisan nova:install
4. Führt die Migrationen aus:
php artisan migrate
5. Fügt die Nova-Route in routes/web.php hinzu:
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:
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:
namespace App\Nova;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Fields\Email;
use Laravel\Nova\Fields\Password;
use Laravel\Nova\Fields\DateTime;
use Laravel\Nova\Http\Requests\NovaRequest;
class User extends Resource
{
public static $model = 'App\\User';
public function fields(NovaRequest $request)
{
return [
ID::make()->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:
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:
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:
php artisan nova:filter UserType
2. Nova erstellt automatisch die Datei app/Nova/Filters/UserType.php.
Hier könnt ihr euren Filter definieren:
namespace App\Nova\Filters;
use Illuminate\Http\Request;
use Laravel\Nova\Filters\Filter;
class UserType extends Filter
{
public $name = 'User Type';
public function apply(Request $request, $query, $value)
{
return $query->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:
php artisan nova:action PromoteUser
2. Nova erstellt automatisch die Datei app/Nova/Actions/PromoteUser.php.
Hier könnt ihr eure Aktion definieren:
namespace App\Nova\Actions;
use Illuminate\Bus\Queueable;
use Laravel\Nova\Fields\ActionFields;
use Illuminate\Queue\InteractsWithQueue;
use Laravel\Nova\Actions\Action;
use Illuminate\Support\Collection;
class PromoteUser extends Action
{
use InteractsWithQueue, Queueable;
public function handle(ActionFields $fields, Collection $models)
{
foreach ($models as $model) {
$model->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 Sicherheits
updates 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!
0 Kommentare