在Laravel 5.2中明确插入“id”自动增量主键字段


insert `id` autoincrement primary key field explicitly in laravel 5.2

我正在将旧数据迁移到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'];

你应该很高兴(还要考虑到你没有留下任何空字段,根据用户迁移不能为空)