我试图在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();
});
}
答案 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'];
}
再次运行播种机,您应该具有所需的数据。