Au menu de ce chapitre
Dans ce nouvel article de notre tutoriel sur Nuxt.js + Adonis.js, nous allons nous préoccuper des modifications nécessaires dans les modèles de l’application et plus particulièrement au modèle de la table ‘languages’.
Previously in « Nuxt.js + Adonis.js » 😀
Dans le précédent article, nous avons abordé la mise en place de la base de données avec PostgreSQL et comment utiliser les migrations de notre application Meet The Coders.
Sommaire du tutoriel
- Chapitre 01 – Installer Nuxt.js
- Chapitre 02 – Mise en place des templates de l’application
- Chapitre 03 – Bases de données & migrations
- Chapitre 04 – Création des modèles
- Chapitre 05 – Création des controllers
- Chapitre 06 – Authentification
- Chapitre 07 – Ajouter / Editer / Supprimer des données via l’application (à venir)
- Chapitre 08 – Conclusion (à venir)
Création du modèle pour la table ‘languages’
Créons un modèle pour notre table languages, pour cela la ligne de commande nous sera encore utile :
> adonis make:model language
Nota : Vous noterez que la table s’appelle ‘languages’ (au pluriel) et le modèle s’appelle ‘language’ au singulier. C’est une convention que l’on retrouve d’ailleurs dans Laravel.
Le fichier Models/Language.js est généré automatiquement par la ligne de commande Adonis. Nous n’avons pas besoin de le modifier pour le moment.
'use strict'
/** @type {typeof import('@adonisjs/lucid/src/Lucid/Model')} */
const Model = use('Model')
class Language extends Model {
}
module.exports = Language
Ajouter quelques languages dans la table Languages
En utilisant PgAdmin, je vous encourage à créer quelques languages qui nous serviront à alimenter le site pour la suite de notre tutoriel.
Vous pouvez si vous le souhaitez vous baser sur l’exemple suivant :
Intégrer la relation Belongs To Many dans le modèle User.js
Nous modifions à présent le fichier modèle Models/User.js pour qu’il prenne en compte la relation avec la table Languages.
Pour cela nous nous appuyons sur la documentation officielle et nous ajoutons la fonction ‘languages’ à notre modèle User.js.
/**
* Define belongs to many relationships between users and
* languages
*
* @method languages
*
* @return {Object}
*/
languages () {
return this
.belongsToMany('App/Models/Language')
.withPivot(['level'])
}
Comme nous ne précisons pas le nom de la table pivot utilisée dans le cadre de la relation belongs to many, la table utilisée sera celle définie par convention, c’est à dire language_users. Ce nom est la concaténation des noms des tables concernées jointes par un underscore (‘_’) et pluralisée, car là aussi il s’agit d’une convention, le nom des tables des bases de données sont au pluriel, alors que le nom du modèle est au singulier.
Dans le cas où vous souhaiteriez un nom différent pour cette table pivot, il vous suffit de le préciser en utilisant la fonction .pivotTable. Pour renommer la table en ‘user_languages’, il vous suffirait de rajouter cette ligne .pivotTable('user_languages')
La commande .withPivot nous permet de définir que nous souhaitons que soit retourné en même temps que les id des deux tables, le champ level qui nous permettra de définir pour un coder son niveau dans le langage ciblé.
Conclusion
Un chapitre bien court comparé au précédent.
Nous y avons vu :
- la création d’un fichier modèle à partir de la ligne de commande
- ajout de fonction dans un modèle pour établir des relations avec d’autres tables
Vous pourrez retrouver les ressources de ce tutoriel sur notre GitHub dédié au projet Meet The Coders
Dans le prochain article, nous commencerons à aborder les controllers d’Adonis.js.
Si cet article vous a plu, je vous serais super reconnaissant de lui attribuer une note.
Je vous serai également éternellement reconnaissant de vous abonner à notre newsletter.
Enfin si vous avez constaté des erreurs, des oublis ou tout autre motif pour que je sois pendu haut et court, je vous encourage à utiliser les commentaires pour me le signaler.
Nota : vous pouvez aussi utiliser les commentaires pour m’encourager 😀 !
Affiliation : Jérémy Mouzin – Présentation du module algorithmique
Tu te prépares à passer bientôt des entretiens techniques d’embauche (sur CodinGame peut-être ?) ou tu as échoué lors de tes derniers entretiens ?
Ne rate plus une occasion de décrocher ton 1er job en te formant à l’algorithmique dès maintenant !
Dans ce module de 60h j’ai résolu des exercices en live sur les plateformes CodeWars et CodinGame en t’expliquant toute ma façon de penser de A à Z.
Tu apprendras la méthode DECAPI et l’utilisation du pseudo-code pour éviter le syndrome de la page blanche et résoudre n’importe quel exercice facilement.
Cette formation est unique en son genre et n’existe nulle part ailleurs sur internet, prends le temps de lire le contenu complet de ce module car il peut te permettre d’accéder enfin à ton 1er job de développeur.
Accéder au module algorithmique
Astuce budget : tu peux payer en 5 fois sans frais !