【问题标题】:Laravel DB Seeder won't seed in consoleLaravel DB Seeder 不会在控制台中播种
【发布时间】:2018-04-19 22:30:27
【问题描述】:

您好,我正在尝试播种以下播种机类。当我运行 php artisan db:seed 命令时,唯一的种子是我几周前创建的上一个播种器类。我不知道我错过了什么。我还插入了 SoftDeletes 和 Protected 可填充项。

这是我的播种机类:

    public function run()
{
    DB::table('leave_type')->insert([
      [
        'leaveType' => 'Vacation Leave'
      ],
      [
        'leaveType' => 'Sick Leave'
      ],
      [
        'leaveType' => 'Afternoon Off'
      ],
      [
        'leaveType' => 'Special Leave'
      ],
      [
        'leaveType' => 'Study Leave'
      ],
    ]);
}

我的模特:

    namespace App;

    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Database\Eloquent\SoftDeletes;

    class LeaveType extends Model
     {
       protected $fillable = ['leaveType'];
       protected $table ="leave_type";
       use SoftDeletes;
       public $timestamps = true;
    }

【问题讨论】:

  • 首先运行 composer dump-auto,然后运行 ​​db:seed - laravel 可能还不知道新的播种器类。还要确保您的播种机已注册。
  • 您是否将播种机添加到DatabaseSeeder.php
  • 那是我忘记的!谢谢 - 没有将它添加到数据库播种器类。
  • 模型没问题。但是你没有使用模型

标签: php laravel


【解决方案1】:

将我的评论转换为回答;

  1. 确保 laravel 知道您通过运行以下命令生成的新数据库播种器类:

作曲家转储自动

  1. 确保您的播种器类已在 {PROJECT}/database/seeds/DatabaseSeeder.php 中注册,如下所示:

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

然后您可以刷新数据库(回滚所有迁移,重新运行迁移)并使用以下命令一次性运行播种机:

php artisan migrate:refresh --seed

或者只像这样运行特定的播种器:

php artisan db:seed --class=YourNewSeeder

【讨论】:

  • php artisan migrate:refreh --seed 中的小错字,应该是refresh
猜你喜欢
  • 2019-03-22
  • 2020-02-27
  • 2021-04-21
  • 2017-11-17
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
  • 2013-12-01
  • 2021-02-07
相关资源
最近更新 更多