如何解决没有id的Laravel质量分配自动增量
想知道是否可以通过将 Autoincrement id 保持为空来在 Laravel 中插入或更新插入。 这是我的表迁移
$table->id(); // Autoincrement
$table->string("description");
$table->string("part_number");
$table->string("serial_number");
$table->smallInteger("qty");
这是我想要更新的数据。当我尝试使用 $data1
进行 upsert 时,出现错误。还没有尝试过 $data2
但这是另一种可能性。
1366 不正确的整数值:'' 表示第 1 行的 'id' 列
$data1= [
[
id=>"",description=>"xyz",part_number=>"xyz",serial_number=>"xyz",qty=>1
],[
id=>"",description=>"xyz1",part_number=>"xyz1",serial_number=>"xyz1",description=>"xyz2",part_number=>"xyz2",serial_number=>"xyz2",];
$data2=[
[
id=>1,[
id=>2,]
解决方法
您无需在 data1 数组中提及 id。 Laravel 会自动处理它。正如您提到的 id 为“”,Laravel 正试图将其存储为这样,而 id 是无符号整数列,因此您收到错误“1366 Incorrect integer value: '' for column 'id' at row 1”
试试下面的数据数组,它应该可以工作:
$data1 = [
[
description=>"xyz",part_number=>"xyz",serial_number=>"xyz",qty=>1
],[
description=>"xyz1",part_number=>"xyz1",serial_number=>"xyz1",[
description=>"xyz2",part_number=>"xyz2",serial_number=>"xyz2",];
,
找到了解决办法。如果其他人遇到相同的问题或想要类似的结果,这可能会有所帮助。
Laravel 最终没有让人失望。它允许空白的自动增量字段并自行进行增量(我认为本机 DB 函数,在我的情况下它是 MySQl)。
只需在 'strict' => false
config/database.php
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。