Laravel DB Seeder 不会在控制台中播种
Posted
技术标签:
【中文标题】Laravel DB Seeder 不会在控制台中播种【英文标题】:Laravel DB Seeder won't seed in console 【发布时间】: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
?
那是我忘记的!谢谢 - 没有将它添加到数据库播种器类。
模型没问题。但是你没有使用模型
【参考方案1】:
将我的评论转换为回答;
-
确保 laravel 知道您通过运行以下命令生成的新数据库播种器类:
作曲家转储自动
-
确保您的播种器类已在
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
。以上是关于Laravel DB Seeder 不会在控制台中播种的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.* 执行seeder命令出现错误的解决方法