Maison  >  Article  >  cadre php  >  Développement Laravel : Comment utiliser Laravel Nova pour les opérations CRUD ?

Développement Laravel : Comment utiliser Laravel Nova pour les opérations CRUD ?

WBOY
WBOYoriginal
2023-06-14 11:40:041300parcourir

Laravel est l'un des frameworks PHP les plus populaires aujourd'hui, offrant des fonctionnalités riches et une expérience de développement pratique. Laravel Nova est un générateur d'interface d'administration conçu spécifiquement pour les applications Laravel, vous aidant à créer et à gérer plus facilement des panneaux d'administration back-end. Dans cet article, nous verrons comment utiliser Laravel Nova pour les opérations CRUD.

Que sont les opérations CRUD ?

CRUD est l'abréviation de "Créer, Lire, Mettre à jour et Supprimer". Ces quatre opérations constituent la fonctionnalité de base de toute application. Grâce aux opérations CRUD, vous pouvez implémenter des opérations de base telles que l'ajout, l'interrogation, la mise à jour et la suppression de données dans la base de données. Dans le framework Laravel, nous pouvons utiliser Eloquent ORM pour implémenter facilement ces opérations. Cependant, si vous souhaitez un panneau d'administration plus convivial, Laravel Nova a une excellente solution pour vous.

Installer Laravel Nova

Avant d'utiliser Laravel Nova, nous devons d'abord l'installer. Laravel Nova est un produit commercial et propose officiellement une période d'essai gratuite de 30 jours. Si vous souhaitez l'essayer, vous pouvez vous rendre sur https://nova.laravel.com/ pour créer un compte et obtenir une licence d'essai.

Une fois l'installation terminée, nous pouvons ajouter Nova à notre application Laravel. Vous pouvez utiliser composer pour terminer ce processus, allez simplement dans votre dossier de projet dans la console et exécutez la commande suivante :

composer require laravel/nova

De plus, vous devrez également enregistrer le fournisseur de services Nova. Dans le fichier config/app.php, recherchez le tableau des fournisseurs et ajoutez le code suivant :

LaravelNovaNovaServiceProvider::class,

Après avoir exécuté la commande ci-dessus, vous devez exécuter la commande suivante :

php artisan nova:install

Cette commande générera le fichier de configuration et le répertoire de ressources Nova. pour votre candidature. Vous devez également utiliser la commande Novapublish pour publier les fichiers CSS et JavaScript de Nova dans le répertoire public/vendor/nova :

php artisan vendor:publish --tag=nova-assets

Ensuite, vous devez également définir le pilote sur session dans le fichier auth.php du dossier de configuration. Laissez le système d'authentification de Nova fonctionner correctement :

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
],

Enfin, vous devez également exécuter la commande suivante pour générer les routes et les tables d'authentification pour Nova :

php artisan nova:install

À ce stade, nous avons terminé l'installation et la configuration de Laravel Nova.

Utiliser Laravel Nova pour les opérations CRUD

Ensuite, nous verrons comment utiliser Laravel Nova pour les opérations CRUD. Nous allons commencer par un exemple simple, créons une nouvelle application de blog en utilisant Laravel Nova, dans cette application nous pourrons créer, afficher, mettre à jour et supprimer des articles de blog.

1. Créer une migration de modèle et de base de données

Tout d'abord, nous devons créer une nouvelle migration de modèle et de base de données. Nous utiliserons l'outil de ligne de commande Artisan de Laravel pour terminer ce processus. Dans la console, basculez vers le dossier de votre projet et tapez la commande suivante :

php artisan make:model Blog -m

Cette commande créera un nouveau modèle nommé Blog et générera également un nouveau fichier de migration de base de données nommé create_blogs_table.

Maintenant, nous devons définir le schéma de notre table "blogs" dans le fichier de migration de la base de données. Recherchez ce fichier dans le répertoire database/migrations et ouvrez-le. Vous verrez un code comme celui-ci :

public function up()
{
    Schema::create('blogs', function (Blueprint $table) {
        $table->id();
        $table->timestamps();
    });
}

public function down()
{
    Schema::dropIfExists('blogs');
}

Dans cet exemple, nous avons uniquement défini un champ d'identifiant et d'horodatage. Vous pouvez ajuster et ajouter d'autres champs selon vos besoins. Exécutez la migration de la base de données une fois terminée :

php artisan migrate

2. Définissez le modèle de ressource

Ensuite, nous devons définir un modèle de ressource. Un modèle de ressource est le pont entre les modèles Laravel Nova et Eloquent. Nous définissons le modèle de ressource pour indiquer à Laravel Nova quelle table de base de données lui sera associée. Pour créer un modèle de ressource, tapez la commande suivante :

php artisan nova:resource Blog

Cette commande créera un nouveau fichier nommé Blog.php dans le répertoire app/Nova. Une fois que vous ouvrez ce fichier, vous verrez le code suivant :

<?php

namespace AppNova;

use IlluminateHttpRequest;
use LaravelNovaFieldsID;
use LaravelNovaFieldsText;
use LaravelNovaFieldsNumber;
use LaravelNovaHttpRequestsNovaRequest;

class Blog extends Resource
{
    /**
     * The model the resource corresponds to.
     *
     * @var string
     */
    public static $model = '';

    /**
     * The single value that should be used to represent the resource when being displayed.
     *
     * @var string
     */
    public static $title = 'id';

    /**
     * The columns that should be searched.
     *
     * @var array
     */
    public static $search = [];

    /**
     * Get the fields displayed by the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),

            Text::make('Title')->sortable(),

            Number::make('Views')->sortable(),

            Text::make('Content')->hideFromIndex(),
        ];
    }

    /**
     * Get the cards available for the request.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function cards(Request $request)
    {
        return [];
    }

    /**
     * Get the filters available for the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function filters(Request $request)
    {
        return [];
    }

    /**
     * Get the lenses available for the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function lenses(Request $request)
    {
        return [];
    }

    /**
     * Get the actions available for the resource.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    public function actions(Request $request)
    {
        return [];
    }
}

Dans ce fichier, nous définissons un nouveau modèle de ressource appelé Blog. Il faut maintenant associer ce modèle au modèle Laravel. Il vous suffit d'ouvrir le fichier modèle et d'ajouter le code suivant en haut :

namespace App;

use IlluminateDatabaseEloquentModel;

class Blog extends Model
{
    //
}

3. Connectez les ressources à nova

Maintenant, nous devons connecter les ressources du Blog à Laravel Nova. Pour ce faire, vous pouvez ouvrir le fichier app/Nova/NovaServiceProvider.php et ajouter ce qui suit à sa méthode de démarrage :

use AppNovaBlog;

// ...

public function boot()
{
    // ...

    Nova::resources([
        Blog::class,
    ]);
}

Maintenant que nous avons configuré avec succès Laravel Nova, nous pouvons entrer dans l'application et y jeter un œil. est-ce que c'est comme.

4. Effectuer des opérations CRUD

Maintenant, nous avons configuré avec succès Laravel Nova et connecté nos ressources de blog avec celui-ci. Nous pouvons accéder au panneau d'administration et commencer à effectuer des opérations CRUD.

Exécutez la commande suivante dans la console pour démarrer le serveur de développement local :

php artisan serve

Ensuite, ouvrez l'url http://localhost:8000/nova et vous verrez une page de connexion. Connectez-vous en utilisant un compte existant dans votre application Laravel.

Vous pouvez maintenant cliquer sur le menu déroulant « Ressources » dans le menu supérieur et sélectionner Blog. Ici, vous verrez une liste de blogs vide.

Nous pouvons créer, lire, mettre à jour et supprimer des articles de blog en utilisant Laravel Nova. Vous pouvez cliquer sur le bouton « Nouveau blog » dans le coin supérieur droit de la page et saisir les données. Chaque fois qu'un nouvel article de blog est ajouté, la liste sera automatiquement mise à jour pour afficher les dernières données.

Vous pouvez accéder aux modes d'affichage et d'édition en cliquant sur le nom d'un article de blog pour effectuer d'autres actions, telles que la mise à jour ou la suppression d'un article de blog. De plus, vous pouvez utiliser la fonction Filtre pour trouver rapidement des articles de blog spécifiques et la fonction Rechercher pour rechercher des mots-clés dans tous les articles de blog.

Résumé

En utilisant Laravel Nova, nous pouvons facilement créer et gérer le panneau d'administration backend de l'application Laravel. Dans ce didacticiel, nous avons appris à créer une application CRUD simple à l'aide de Laravel Nova. Vous pouvez utiliser des méthodes similaires dans des projets réels et maîtriser des fonctionnalités plus avancées de Laravel Nova pour implémenter des applications plus complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn