Mise à Jour d'un Élément dans la Base de Données
Mettre à jour une facture - Étapes simples
La mise à jour d'une facture suit un processus très similaire à sa création. Voici les étapes :
- Créer une route dynamique : Créer un nouveau segment de route dynamique, incluant l'
idde la facture. Cela permet d’indiquer à l’application sur quelle facture intervenir ; - Lire l’id de la facture : Récupérer l’
idde la facture à partir des paramètres de la page ; - Récupérer la facture spécifique : Obtenir les informations de la facture sélectionnée depuis la base de données ;
- Mettre à jour la base de données : Après avoir effectué les modifications nécessaires, mettre à jour les données de la facture dans la base de données.
Retour au projet
1. Créer une route dynamique
En fonction des données changeantes, il est possible de créer des segments de route dynamiques pour obtenir des routes flexibles. Entourez le nom d’un dossier avec des crochets pour créer une route dynamique. Par exemple, utilisez [id], [post] ou [slug] lorsque des segments variables sont nécessaires dans la route.
- Accédez au dossier
/invoiceset créez une nouvelle route dynamique nommée[id]; - Ajoutez une nouvelle route appelée 'edit' à l’intérieur du dossier
/invoices/[id]. Incluez un fichierpage.tsx.
Résultat :
Examinons le composant Table dans app/ui/invoices/table.tsx. On peut observer que UpdateInvoice reçoit l’id de la facture.
Accédez au composant <UpdateInvoice /> (app/ui/invoices/buttons.tsx). On constate que l’id est utilisé comme partie de la valeur href.
2. Lire l'identifiant de la facture
Insérer le code suivant dans app/dashboard/invoices/[id]/edit/page.tsx.
3. Récupérer une facture spécifique
Ensuite, importer les nouvelles fonctions appelées fetchInvoiceById et fetchSellers.
fetchInvoiceByIdretourne les données d'une facture spécifique ;fetchSellersretourne les vendeurs pour la liste déroulante du formulaire affichant tous les vendeurs.
Il est possible de récupérer efficacement la facture et les vendeurs simultanément en utilisant Promise.all.
Testons-le ! Ouvrir la page des factures et cliquer sur le bouton d'édition (symbole du stylo). Cela doit rediriger vers le formulaire avec la facture pré-remplie.
4. Mise à jour de la base de données
Il est nécessaire d'envoyer l'id à l'Action Serveur afin de mettre à jour l'enregistrement correct dans la base de données. Voici comment procéder efficacement :
Utilisation de la méthode JS bind pour transmettre l'id à l'Action Serveur. Cela garantit que toutes les valeurs envoyées à l'Action Serveur sont correctement encodées.
Éviter de passer l'id directement comme argument dans l'action du formulaire de cette manière :
// This won't work
<form action={updateInvoice(id)}>
Ensuite, les actions seront poursuivies et une action sera créée pour la mise à jour de la facture.
À tester : après modification d'une facture, soumettre le formulaire pour être redirigé vers la page des factures avec la facture mise à jour.
En pratique
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.08
Mise à Jour d'un Élément dans la Base de Données
Glissez pour afficher le menu
Mettre à jour une facture - Étapes simples
La mise à jour d'une facture suit un processus très similaire à sa création. Voici les étapes :
- Créer une route dynamique : Créer un nouveau segment de route dynamique, incluant l'
idde la facture. Cela permet d’indiquer à l’application sur quelle facture intervenir ; - Lire l’id de la facture : Récupérer l’
idde la facture à partir des paramètres de la page ; - Récupérer la facture spécifique : Obtenir les informations de la facture sélectionnée depuis la base de données ;
- Mettre à jour la base de données : Après avoir effectué les modifications nécessaires, mettre à jour les données de la facture dans la base de données.
Retour au projet
1. Créer une route dynamique
En fonction des données changeantes, il est possible de créer des segments de route dynamiques pour obtenir des routes flexibles. Entourez le nom d’un dossier avec des crochets pour créer une route dynamique. Par exemple, utilisez [id], [post] ou [slug] lorsque des segments variables sont nécessaires dans la route.
- Accédez au dossier
/invoiceset créez une nouvelle route dynamique nommée[id]; - Ajoutez une nouvelle route appelée 'edit' à l’intérieur du dossier
/invoices/[id]. Incluez un fichierpage.tsx.
Résultat :
Examinons le composant Table dans app/ui/invoices/table.tsx. On peut observer que UpdateInvoice reçoit l’id de la facture.
Accédez au composant <UpdateInvoice /> (app/ui/invoices/buttons.tsx). On constate que l’id est utilisé comme partie de la valeur href.
2. Lire l'identifiant de la facture
Insérer le code suivant dans app/dashboard/invoices/[id]/edit/page.tsx.
3. Récupérer une facture spécifique
Ensuite, importer les nouvelles fonctions appelées fetchInvoiceById et fetchSellers.
fetchInvoiceByIdretourne les données d'une facture spécifique ;fetchSellersretourne les vendeurs pour la liste déroulante du formulaire affichant tous les vendeurs.
Il est possible de récupérer efficacement la facture et les vendeurs simultanément en utilisant Promise.all.
Testons-le ! Ouvrir la page des factures et cliquer sur le bouton d'édition (symbole du stylo). Cela doit rediriger vers le formulaire avec la facture pré-remplie.
4. Mise à jour de la base de données
Il est nécessaire d'envoyer l'id à l'Action Serveur afin de mettre à jour l'enregistrement correct dans la base de données. Voici comment procéder efficacement :
Utilisation de la méthode JS bind pour transmettre l'id à l'Action Serveur. Cela garantit que toutes les valeurs envoyées à l'Action Serveur sont correctement encodées.
Éviter de passer l'id directement comme argument dans l'action du formulaire de cette manière :
// This won't work
<form action={updateInvoice(id)}>
Ensuite, les actions seront poursuivies et une action sera créée pour la mise à jour de la facture.
À tester : après modification d'une facture, soumettre le formulaire pour être redirigé vers la page des factures avec la facture mise à jour.
En pratique
Merci pour vos commentaires !