在 laravel 中迁移并插入外键值 laravel

insert foreign key value laravel with migration in laravel

我想在迁移时插入外键而不是在 1

中添加外键值
`public function up()
    {
        Schema::table('users', function (Blueprint $table) {
      $table->integer('role_id')->unsigned()->after('email')->nullable();
        $table->foreign('role_id')->references('id')->on('roles');
        });
        $data = [
            'name' => 'admin',
            'email' => 'admin@admin.com',
            'role_id' => 1,
            'password' => bcrypt('123456'),
        ];
        App\User::create($data);
    }`

这是 screenshot 的用户 table

创建迁移在外键中设置默认值 1

 $table->integer('role_id')->unsigned()->after('email')->nullable()->default(1);

在迁移中播种数据不是一个好习惯。

确保 role_id 存在于引用的 table 中。

还要确保 role_id 未被保护并且存在于 User 模型的可填充数组中。

$fillable = ['role_id']

我建议创建一个播种器,然后 运行 迁移后的播种器。

php artisan make:seed User

希望对您有所帮助