Maison  >  Article  >  cadre php  >  Comment implémenter rapidement le remplissage de données dans Laravel (à l'aide de Seeder)

Comment implémenter rapidement le remplissage de données dans Laravel (à l'aide de Seeder)

藏色散人
藏色散人avant
2021-11-03 15:55:493498parcourir

La colonne tutorielle suivante de Laravel vous présentera l'utilisation du seeder par Laravel pour remplir les données dans le tableau de données. J'espère que cela sera utile à tout le monde !

Laravel utilise seeder pour remplir les données dans la table de données

Laissez-moi vous montrer comment remplir rapidement les données dans la table de données

Tout d'abord, exécutez la commande php artisan et diverses instructions de commande apparaîtront

php artisan make:seeder

Selon La commande demande de créer le fichier correspondant comme indiqué ci-dessous

php artisan make:seeder TestSeeder

Tout d'abord, je crée une table de test comme indiqué ci-dessous

Le contenu du fichier TestSeeder.php est le suivant

<?php

use Illuminate\Database\Seeder;

class TestSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table(&#39;test&#39;)->insert([
            &#39;name&#39; => str_random(10),
            &#39;sex&#39; => rand(1,2), // 1男 2女
            &#39;email&#39; => str_random(10).&#39;@qq.com&#39;,
            &#39;password&#39; => bcrypt(&#39;123456&#39;), // bcrypt为hash加密
        ]);
    }
}

Exécuter Utilisez la commande suivante pour remplir de fausses données

php artisan db:seed --class=TestSeeder


Chaque fois que vous en ajoutez une, vous devrez exécuter une commande. Ce sera très gênant. Il est préférable d'écrire une boucle for pour insérer une. nouveau

for ($x=0; $x<=10; $x++) {
     DB::table(&#39;test&#39;)->insert([
          &#39;name&#39; => str_random(10),
          &#39;sex&#39; => rand(1,2), // 1男 2女
          &#39;email&#39; => str_random(10).&#39;@qq.com&#39;,
          &#39;password&#39; => bcrypt(&#39;123456&#39;), // bcrypt为hash加密
     ]);
}

Les données de la base de données sont affichées ci-dessous :

Si vous devez ajouter les données de test de plusieurs tables en même temps, vous devez ajouter DatabaseSeeder.php :

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        // $this->call(UsersTableSeeder::class);
         $this->call(CreateDepartmentsSeeder::class);
         $this->call(CreateUsersSeeder::class);
         $this->call(CreateWagesSeeder::class);
    }
}

Exécutez la commande suivante pour remplir les données de test de plusieurs tables

php artisan db:seed
当我们执行  php artisan db:seed 
提示 class UserTableSeeder does not exist

这个错误基本是出现在不经过composer的时候出现的,至于为什么会出现呢?
1.可能是你执行php artisan make:seeder UserTableSeeder 的时候,他没有把UserTableSeeder.php 写到自动加载里面去
2.你是复制过来的

解决方法: composer dump-autoload

Adresse officielle du document : https ://laravel.com/docs/5.5/seeding#writing-seeders

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer