【问题标题】:Laravel db:seed success but no data in my databaseLaravel db:种子成功但我的数据库中没有数据
【发布时间】:2021-10-31 10:29:37
【问题描述】:

我尝试在 laravel 中制作简单的种子,但是当我执行“php artisan db:seed”时,它并没有填满我的字段。

我制作了我的类别播种器文件 这是我的类别播种器文件:

class CategoryTableSeeder extends Seeder
{
    public function run()
    {
        $categori1 = new Category;
        $categori1->name = "Books";
        $categori1->save();
        $categori2 = new Category;
        $categori2->name = "Backpacks";
        $categori2->save();

    }
}

这是我的类别模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    //
}

这是我的类别表迁移文件的一部分:

    public function up()
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->timestamps();
        });
    }

【问题讨论】:

  • 您是否已经在数据库播种器上调用了播种器类?

标签: php laravel eloquent


【解决方案1】:

您必须将您的 Seeder 类添加到 DatabaseSeeder.php。像这样:

public function run()
{
    $this->call(CategoryTableSeeder::class);
}

或者,您可以使用php artisan db:seed --class=CategoryTableSeeder 指定要作为种子的确切类。

【讨论】:

    【解决方案2】:

    运行

    php artisan db:seed --class=CategoryTableSeeder
    

    如果您想运行所有播种机,请在文件DatabaseSeeder.php 中添加此类

    $this->call(CategoryTableSeeder::class);
    

    【讨论】:

      【解决方案3】:

      发生这种情况的原因是您忘记将 $fillable 添加到模型中,并定义哪些字段是 fillabe。在你的 Category 里面添加这个:

      class Category extends Model
      {
          protected $fillable = ['name'];
      }
      

      再次运行播种机,您应该会获得所需的数据。

      【讨论】:

        猜你喜欢
        • 2013-10-26
        • 1970-01-01
        • 2020-10-14
        • 1970-01-01
        • 2016-01-14
        • 2015-02-04
        • 2017-01-30
        • 1970-01-01
        • 2014-11-21
        相关资源
        最近更新 更多