Use o modelo de fábrica para o preenchimento de dados no laravel

  • Gere uma tabela de dados (todas as lições são usadas como demonstração neste caso)

artesão php make: migração create_lessons_table

  • Modifique as propriedades do campo na tabela

    • Adicione campos no arquivo de migração (por exemplo, banco de dados / migrações / {time} _create_lessons_table.php)
    <?php
    use Illuminate\Database\Migrations\Migration;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Support\Facades\Schema;
    
    class CreateLessonsTable extends Migration
    {
       /**
        * Run the migrations.
        *
        * @return void
        */
       public function up()
       {
           Schema::create('lessons', function (Blueprint $table) {
               $table->id();
               $table->string('title');
               $table->text('body');
               $table->boolean('free');
               $table->timestamps();
           });
       }
    
       /**
        * Reverse the migrations.
        *
        * @return void
        */
       public function down()
       {
           Schema::dropIfExists('lessons');
       }
    }
    
  • Executar migração de banco de dados

    artesão php migrar

  • Criar dados usando um modelo de fábrica

    • Criar arquivo de classe de fábrica de modelo

    PHP artesão make: fábrica LessonFactory

    <?php
    
     /** @var \Illuminate\Database\Eloquent\Factory $factory */
     
     use App\Models\Lesson;
     use Faker\Generator as Faker;
     
     $factory->define(Lesson::class, function (Faker $faker) {
         return [
             'title' => $faker->title,
             'body' => $faker->paragraph,
             'free' => $faker->boolean()
         ];
     });
    

    注:在上面一定要引入对应的模型文件

  • Gerar arquivo de propagador

    php artisan make: semeador LessonsTableSeeder

    <?php
    
      use Illuminate\Database\Seeder;
      use App\Models\Lesson;
      
      class LessonsTableSeeder extends Seeder
      {
          /**
           * Run the database seeds.
           *
           * @return void
           */
          public function run()
          {
              $lessons = factory(Lesson::class)->times(30)->make();
              Lesson::insert($lessons->toArray());
          }
      }
      // 执行数据填充的时候会运行run方法中的内容
      // times(个数)为要填充的数据个数
      // make()是生成数据
      // insert()中插入的数据格式必须是数组,所以用toArray()转换为数组格式
    
  • Preencher dados

    php artisan db: seed
    php artisan db: seed --class = LessonsTableSeeder especifica a sementeira cheia
    php artisan migrate: fresh --seed exclua todas as tabelas e execute novamente todas as migrações, pode ser usado para reconstruir o banco de dados

Publicado 145 artigos originais · Gosto 38 · Visitas: mais de 170.000

Acho que você gosta

Origin blog.csdn.net/yehuaner33/article/details/104917209
Recomendado
Clasificación