Laravel db:种子成功,但是数据库中没有数据

时间:2019-09-17 13:40:02

标签: php laravel eloquent

我试图在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
{
    //
}

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

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

3 个答案:

答案 0 :(得分:3)

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

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

或者您可以指定要使用php artisan db:seed --class=CategoryTableSeeder进行播种的确切类。

让我知道这是否有帮助。

答案 1 :(得分:3)

运行

php artisan db:seed --class=CategoryTableSeeder

否则,如果要运行所有种子,请在文件DatabaseSeeder.php中添加该类

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

答案 2 :(得分:0)

发生这种情况的原因是因为您忘记将$ fillable添加到模型中,并定义了哪些字段为fillabe。在您的Category内添加以下内容:

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

再次运行播种机,您应该具有所需的数据。