Cours Laravel 5.3 – les données – un concepteur de schéma
Lundi 28 novembre 2016 13:33
Dans les chapitres précédents on a plusieurs fois dû créer des migrations, des populations, des contrôleurs, des modèles... Artisan possède des commandes pour effectuer certaines de ces opérations mais il nous a fallu créer pas mal de code qui, de toute évidence, pourrait plus ou moins facilement être automatisé.
Il est possible d'améliorer les commandes d'Artisan ou même de s'en créer des nouvelles. Il existe aussi des assistants pour nous aider dans ces tâches un peu pénibles ou répétitives. Je vous propose dans ce chapitre de découvrir le concepteur de schéma Laravel Schema Designer.
Mise en route
Laravel Schema Designer est un concepteur de schéma, c'est à dire qu'il vous permet de réaliser de façon visuelle des tables avec toutes leurs caractéristiques ainsi que les relations qui les unissent. A l'issue de cette composition graphique il peut générer le code des migrations, les modèles, et bien d'autres choses... On va voir comment on l'utilise avec un exemple simple de base bibliographique qui nous servira dans le prochain chapitre.Mais la première chose que vous devez faire est de créer un compte (gratuit) sur le site.
Ensuite vous donnez un nom à votre base : Vous pouvez alors commencer à créer ! Le but est d'obtenir ces 4 tables avec ces relations : On a les relations :- 1:n entre les éditeurs et les livres,
- n:n entre les auteurs et les livres.
Créer des tables
Table des auteurs
Il faut cliquer sur ce lien pour ajouter une table : Ensuite vous renseignez les champs : Vous avez alors votre table visuellement à l'écran : On va ajouter une colonne à cette table, il suffit de cliquer sur le bouton avec le signe + : Le formulaire est très complet, il suffit de le renseigner : Après validation on voit notre nouvelle colonne dans la table :Table des éditeurs
Vous allez procéder exactement de la même manière pour la table des éditeurs, on va juste choisir une autre couleur : Créez aussi une colonne nom avec les mêmes propriétés que celle de la table des auteurs. A final vous avez donc la table des éditeurs :Table des livres
Créez la table des livres : Ajouter les colonnes titre et description (cochez "fillable" pour les deux) : On va maintenant ajouter la colonne clé étrangère pour les éditeurs : La table est maintenant complète :Table pivot
Il ne nous manque plus que la table pivot entre les auteurs et les livres (plusieurs auteurs peuvent écrire un livre et un auteur peut écrire plusieurs livres). On va renseigner le formulaire comme on l'a fait pour les autres tables même si on sait qu'on n'aura pas besoin de modèle pour cette table, mais c'est nécessaire pour le fonctionnement du concepteur : Ajoutez les deux clés étrangères comme on l'a fait ci-dessus (une pour les auteurs et l'autre pour les livres), vous devez donc avoir la table ainsi :Créer les relations
Maintenant que les tables sont prêtes on va ajouter les relations.Les éditeurs
Commençons par la table des éditeurs. Cliquez sur le bouton le plus à gauche : Renseignez ainsi le formulaire : La relation se crée visuellement :Les livres
On va créer la relation réciproque à partir des livres : On a maintenant les deux relations : Mais on sait que les livres sont aussi en relation avec les auteurs alors on ajoute cette relation :Les auteurs
Il ne nous manque plus que la relation réciproque entre auteurs et livres : On a maintenant terminé notre travail de conception. Si vous êtes un peu perdu j'ai mis le schéma complet en partage ici.La génération
Il ne vous reste plus qu'à cliquez sur ce lien pour tout générer : Regardez ce que vous recevez :Ce qui est vraiment intéressant dans tout ça ce sont les migrations et les modèles.
Mettez ces migrations dans une installation fraîche de Laravel en supprimant les deux de base pour les utilisateurs. : Lancez maintenant ces migrations : Vous créez les tables : C'est quand même plus sympathique que d'écrire tout le code des migrations . Récupérez également les modèles qui nous serviront dans le prochain chapitre de ce cours.En résumé
- Le concepteur de schéma "Laravel Schema designer" permet de créer de façon graphique un schéma de base de données.
- On peut créer des tables et des relations.
- La génération finale fournit de nombreux fichiers : migrations, modèles, contrôleurs, vues, routes...
Par bestmomo
Nombre de commentaires : 2