我正在将旧数据迁移到laravel中。
我想要的是在新表中保持以前的 id 相同我有一个默认的$table->increments(id)
字段。
有没有办法在 laravel 中我可以显式插入此 id 字段?
由于我无法使用雄辩的模型create
方法做到这一点:
User::create([
'id' => 123456,
'first_name' => 'john',
'last_name' => 'doe'
])
那里甚至可能吗?
问题必须出在用户模型中。打开 User.php 文件并修改 $fillable
变量。将id
添加到数组中。$fillable
变量告诉 Eloquent 哪些字段要保护免受像您正在执行的质量分配(质量分配意味着您在插入中一次设置所有值)。因此,即使您像在 create() 调用中那样指定id
Eloquent 也会忽略您设置的任何值,因为该字段不是$fillable
字段的一部分。
所以有这样的变量:
protected $fillable = ['id', 'first_name', 'last_name'];
你应该很高兴(还要考虑到你没有留下任何空字段,根据用户迁移不能为空)