Catégories
JavaScript Vue.js

Nuxt.js + Adonis.js / Chapitre 04 : Les modèles

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

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
Création du modèle pour la table 'languages'
Création du modèle pour la table ‘languages’

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 :

Insertion de quelques languages en base de données

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 ! 

 

Abonnement unique O2Switch à 5€/mois

Par HappyToDev

Absolument passionné depuis toujours par l'informatique et la programmation, je souhaite via ce blog vous faire passer un peu du savoir que j'ai accumulé depuis des années.
Et même, pourquoi pas, vous aider à faire le premier pas dans le développement web.

Vous êtes prêts ?
Alors allons y ensemble et n'oubliez pas que les débutants sont vraiment les bienvenus.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.