{"id":25255,"date":"2021-06-02T19:31:00","date_gmt":"2021-06-02T16:31:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25255"},"modified":"2021-10-18T02:09:32","modified_gmt":"2021-10-17T23:09:32","slug":"comment-faire-de-l-ensemencement-de-base-de-donnees-dans-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/comment-faire-de-l-ensemencement-de-base-de-donnees-dans-laravel\/","title":{"rendered":"Comment faire de l&rsquo;ensemencement de base de donn\u00e9es dans Laravel"},"content":{"rendered":"<p>Dans le pass\u00e9, j&rsquo;ai publi\u00e9 un article <a href=\"https:\/\/themewp.inform.click\/fr\/comment-creer-une-base-de-donnees-a-l-aide-de-la-bibliotheque-php-faker\/\" title=\"Comment amorcer une base de donn\u00e9es en PHP \u00e0 l'aide de Faker Library\" >Comment amorcer une base de donn\u00e9es en PHP \u00e0 l&rsquo;aide de Faker Library<\/a>. Lors de mes recherches sur ce sujet, j&rsquo;ai d\u00e9couvert que Laravel utilise \u00e9galement la m\u00eame biblioth\u00e8que pour ensemencer la base de donn\u00e9es. Comme j&rsquo;ai \u00e9crit un article sur ce sujet pour PHP, j&rsquo;ai d\u00e9cid\u00e9 d&rsquo;\u00e9crire \u00e9galement un article sur l&rsquo;ensemencement de la base de donn\u00e9es Laravel. En effet, Laravel utilise son propre processus pour amorcer la base de donn\u00e9es.<\/p>\n<h3>Qu&rsquo;est-ce que l&rsquo;ensemencement de base de donn\u00e9es\u00a0?<\/h3>\n<p>L&rsquo;amor\u00e7age de la base de donn\u00e9es signifie remplir vos tables de base de donn\u00e9es avec les donn\u00e9es de test par programmation. Avec cette approche, on peut entrer des milliers d&rsquo;enregistrements dans la base de donn\u00e9es en quelques minutes. C&rsquo;est un moyen efficace plut\u00f4t que de le faire manuellement. Vous voudrez peut-\u00eatre des donn\u00e9es factices pour tester votre application et l&rsquo;ensemencement de la base de donn\u00e9es via le programme vous fera gagner beaucoup de temps.<\/p>\n<h3>Biblioth\u00e8que de faux<\/h3>\n<p><a href=\"https:\/\/github.com\/fzaninotto\/Faker\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Faker<\/a> est une biblioth\u00e8que open source qui g\u00e9n\u00e8re de fausses donn\u00e9es pour la base de donn\u00e9es de votre application. En utilisant Faker, on peut ins\u00e9rer des milliers d&rsquo;entr\u00e9es dans la base de donn\u00e9es en quelques minutes. Cette biblioth\u00e8que enregistre un travail de saisie de donn\u00e9es ennuyeux pour les d\u00e9veloppeurs. Vous pouvez obtenir presque tous les types de donn\u00e9es que vous souhaitez. La biblioth\u00e8que g\u00e9n\u00e8re un faux e-mail, un nom, un num\u00e9ro de t\u00e9l\u00e9phone portable, des mots, des phrases, des paragraphes, des nombres al\u00e9atoires, etc. Vous pouvez lire le type de donn\u00e9es qu&rsquo;ils fournissent sur la <a href=\"https:\/\/github.com\/fzaninotto\/Faker\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentation<\/a>.<\/p>\n<p>Laravel installe cette biblioth\u00e8que en son c\u0153ur. Cela signifie que vous n&rsquo;avez pas besoin de l&rsquo;installer s\u00e9par\u00e9ment. Cela \u00e9tant dit, examinons comment effectuer l&rsquo;amor\u00e7age de base de donn\u00e9es dans Laravel.<\/p>\n<h3>Commencer<\/h3>\n<p>Pour commencer, je vais cr\u00e9er un tableau \u00ab\u00a0clients\u00a0\u00bb avec le nom des colonnes, l&rsquo;e-mail et la biographie. Nous verrons le processus d&rsquo;ensemencement de la table unique. De la m\u00eame mani\u00e8re, les utilisateurs peuvent cr\u00e9er autant de tables qu&rsquo;ils le souhaitent.<\/p>\n<p>Cr\u00e9ez une table de migration pour les clients \u00e0 l&rsquo;aide de la commande\u00a0:<\/p>\n<pre><code>php artisan make:migration create_customers_table<\/code><\/pre>\n<p>Ouvrez le fichier de migration et ajoutez les colonnes \u00e0 la m\u00e9thode &lsquo;up&rsquo; comme indiqu\u00e9 ci-dessous.<\/p>\n<pre><code>public function up()\n{\n\u00a0\u00a0\u00a0\u00a0Schema::create('customers', function (Blueprint $table) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;id();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('name');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('email');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;text('bio');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;timestamps();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>Ex\u00e9cutez la commande migrate qui cr\u00e9era une table \u00ab\u00a0clients\u00a0\u00bb dans votre base de donn\u00e9es.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Ensuite, cr\u00e9ez un mod\u00e8le \u00ab\u00a0Client\u00a0\u00bb qui correspond \u00e0 la table \u00ab\u00a0clients\u00a0\u00bb. \u00c0 partir de Laravel 8.x, vos mod\u00e8les seront cr\u00e9\u00e9s dans le r\u00e9pertoire &lsquo;App\/Models&rsquo;. Pour ce tutoriel, je suppose que vous utilisez Laravel 8.x. Dans l&rsquo;ancienne version de Laravel, vous devez ajuster le chemin du mod\u00e8le.<\/p>\n<pre><code>php artisan make:model Customer<\/code><\/pre>\n<h3>Amor\u00e7age de base de donn\u00e9es dans Laravel<\/h3>\n<p>L&rsquo;amor\u00e7age d&rsquo;une base de donn\u00e9es dans Laravel vous oblige \u00e0 suivre quelques \u00e9tapes qui consistent \u00e0 \u00e9crire des seeders, \u00e0 cr\u00e9er une fabrique de mod\u00e8les et \u00e0 ex\u00e9cuter des seeders. Faisons-le un par un.<\/p>\n<h4>\u00c9criture de semoirs<\/h4>\n<p>Si vous regardez le syst\u00e8me de fichiers Laravel, vous remarquez le r\u00e9pertoire <code>database\/seeders<\/code>. Toutes les classes de graines iront dans ce r\u00e9pertoire. Une classe de d\u00e9part a la <code>run<\/code>m\u00e9thode \u00e0 partir de laquelle vous pouvez ins\u00e9rer les donn\u00e9es dans la table.<\/p>\n<p>Cr\u00e9ez une classe de graines CustomerSeeder \u00e0 l&rsquo;aide de la commande\u00a0:<\/p>\n<pre><code>php artisan make:seeder CustomerSeeder<\/code><\/pre>\n<p>Apr\u00e8s avoir ex\u00e9cut\u00e9 cette commande, vous devriez voir le <code>CustomerSeeder.php<\/code>fichier cr\u00e9\u00e9 sous <code>database\/seeders<\/code>. Ouvrez ce fichier et <code>run<\/code>ajoutez le code ci-dessous \u00e0 la fonction.<\/p>\n<pre><code>public function run()\n{\n\u00a0\u00a0\u00a0\u00a0AppModelsCustomer::factory()-&gt;count(50)-&gt;create()-&gt;each(function ($customer) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$customer-&gt;save();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>Ici, j&rsquo;appelle l&rsquo;usine Client que nous allons cr\u00e9er \u00e0 l&rsquo;\u00e9tape suivante. Remarquez que j&rsquo;ai pass\u00e9 la valeur 50 \u00e0 la m\u00e9thode &lsquo;count&rsquo;. Cela signifie que 50 lignes doivent \u00eatre ins\u00e9r\u00e9es dans la table \u00ab\u00a0clients\u00a0\u00bb. Ajustez cette valeur \u00e0 votre guise.<\/p>\n<h4>Cr\u00e9ation d&rsquo;usines<\/h4>\n<p>Le code que j&rsquo;ai \u00e9crit <code>CustomerSeeder<\/code>recherchera une usine pour obtenir les donn\u00e9es de test. Cela signifie que nous devons cr\u00e9er une fabrique de mod\u00e8les. Je vais donner un nom \u00e0 l&rsquo;usine en tant que CustomerFactory. Ex\u00e9cutez la commande pour g\u00e9n\u00e9rer la fabrique de mod\u00e8les.<\/p>\n<pre><code>php artisan make:factory CustomerFactory --model=Customer<\/code><\/pre>\n<p>Cette commande cr\u00e9era un <code>CustomerFactory.php<\/code>\u00e0 l&rsquo;int\u00e9rieur du <code>database\/factories<\/code>r\u00e9pertoire. Ouvrez ce fichier et \u00e0 la m\u00e9thode de d\u00e9finition g\u00e9n\u00e9rez une donn\u00e9e de test comme suit.<\/p>\n<pre><code>public function definition()\n{\n\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; $this-&gt;faker-&gt;name,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'email' =&gt; $this-&gt;faker-&gt;unique()-&gt;safeEmail,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'bio' =&gt; $this-&gt;faker-&gt;text,\n\u00a0\u00a0\u00a0\u00a0];\n}<\/code><\/pre>\n<p>Le tableau ci-dessus renvoie un nom, un e-mail et un texte choisis au hasard pour la biographie.<\/p>\n<h4>Semoirs en marche<\/h4>\n<p>Nous avons tous r\u00e9gl\u00e9 avec le semoir et l&rsquo;usine. Ex\u00e9cutez maintenant notre semoir \u00e0 l&rsquo;aide de la commande ci-dessous.<\/p>\n<pre><code>php artisan db:seed --class=CustomerSeeder<\/code><\/pre>\n<p>V\u00e9rifiez votre table \u00ab\u00a0clients\u00a0\u00bb et elle devrait contenir les 50\u00a0entr\u00e9es fictives.<\/p>\n<p>La commande ci-dessus ex\u00e9cute un seul semoir que nous avons pass\u00e9 explicitement. Supposons que vous souhaitiez cr\u00e9er plusieurs semoirs et les ex\u00e9cuter tous \u00e0 l&rsquo;aide d&rsquo;une seule commande. Dans de tels cas, vous devez appeler vos seeders depuis le <code>DatabaseSeeder<\/code>qui se trouve dans le m\u00eame r\u00e9pertoire <code>database\/seeders<\/code>.<\/p>\n<pre><code>public function run()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;call(CustomerSeeder::class);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ call as many seeders you wish\n\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>L&rsquo;utilisateur peut cr\u00e9er autant de semoirs selon ses besoins et les appeler \u00e0 partir de cette <code>run<\/code>m\u00e9thode.<\/p>\n<p>Enfin, ex\u00e9cutez les semoirs \u00e0 l&rsquo;aide de la commande ci-dessous.<\/p>\n<pre><code>php artisan db:seed<\/code><\/pre>\n<p>Il appellera tous les seeders de la <code>run<\/code>m\u00e9thode et l&rsquo;ex\u00e9cutera.<\/p>\n<p>J&rsquo;esp\u00e8re que vous comprenez l&rsquo;amor\u00e7age de base de donn\u00e9es dans Laravel. J&rsquo;aimerais entendre vos pens\u00e9es et suggestions dans la section des commentaires ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/integration-de-paypal-payments-pro-dans-laravel\/\" title=\"Int\u00e9gration de PayPal Payments Pro dans Laravel\">Int\u00e9gration de PayPal Payments Pro dans Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-creer-un-pot-de-miel-pour-lutter-contre-le-spam-de-formulaire-dans-laravel\/\" title=\"Cr\u00e9er un pot de miel pour lutter contre le spam de forme \u00e0 Laravel\">Cr\u00e9er un pot de miel pour lutter contre le spam de forme \u00e0 Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/un-guide-sur-l-ajout-de-google-recaptcha-v3-a-votre-site-web-laravel\/\" title=\"Ajout de Google reCAPTCHA v3 \u00e0 votre site Web Laravel\">Ajout de Google reCAPTCHA v3 \u00e0 votre site Web Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cherchez-vous un amor\u00e7age de base de donn\u00e9es dans Laravel? Dans cet article, je montre comment cr\u00e9er et ex\u00e9cuter l&rsquo;ensemencement dans l&rsquo;application Laravel. Biblioth\u00e8que factice<\/p>\n","protected":false},"author":1,"featured_media":21644,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[497],"tags":[844],"class_list":["post-25255","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=25255"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25255\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21644"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=25255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=25255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=25255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}