我正在将旧数据迁移到laravel中。
我想要的是在具有默认$table->increments(id)
字段的新表中保持先前的ID不变。
在laravel中有一种方法可以明确插入此id字段吗?
由于我无法使用雄辩的模型create
方法来做到这一点:
User::create([
'id' => 123456,
'first_name' => 'john',
'last_name' => 'doe'
])
那里甚至有可能吗?
问题必须出在用户模型中。打开User.php文件并修改$fillable
变量。添加id
到数组。该$fillable
变量告诉Eloquent像您正在执行的那样,防止哪些字段受到质量分配(质量分配意味着您要一次在插入中设置所有值)。因此,即使您id
像在create()调用中那样指定,Eloquent也会忽略您设置的任何值,因为该字段不是$fillable
字段的一部分。
因此,具有以下变量:
protected $fillable = ['id', 'first_name', 'last_name'];
并且您应该会很好(还要考虑到您没有将任何字段留空,根据用户迁移,该字段不能为空)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句