php - 设置非默认的自动增量:Laravel 不知道更改
问题描述
我为一个表编写了一个迁移,我需要为默认情况修复表的第一项(即 id=1 未知)。
这是代码:
Schema::create('technicians', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('surname')->nullable();
$table->integer('str_id')->unsigned();
$table->timestamps();
$table->foreign('str_id')->references('id')->on('services');
});
\DB::statement('ALTER TABLE technicians AUTO_INCREMENT = 2;');
但是,当 Laravel 尝试创建新条目时,它会尝试使用 id 并使用 1 开头来创建条目。我如何告诉 Laravel Eloquent 从 2 开始?正如你所看到的,我已经尝试了一些东西,但似乎 Eloquent 试图自己添加 id。
SQLSTATE [23000]:完整性约束违规:1062 键“PRIMARY”的重复条目“1”(SQL:插入
technicians
( 、、、、、 )值(1id
,“ JOHN DOE”name
,3,2019-03-11 13:50 :00, 2019-03-11 13:50:00))str_id
updated_at
created_at
编辑:这是数据库中的条目
public function run()
{
$default = new Technician;
$default->id = 1;
$default->name = "DESCONOCIDO";
$default->str_id = 1;
$default->save();
}
解决方案
您可以使用此代码设置自动增量
$table->increments('id')->start_from($yourStartValue);
添加 start_from 并使用您的值作为开始
推荐阅读
- javascript - 获取 X 金额后停止请求
- angular - 尝试在角度中使用地图运算符转换对象(类型转换)
- node.js - nodemon/bin/nodemon.js:找不到从 Windows 10 cmd 运行
- reactjs - 是否可以在单个按钮上的 useReducer hook 的 reducer 功能中管理不同的 switch case?
- nginx - 将位置添加为位置块内的 add_header
- c# - 为什么csv文件在C#中不显示特殊字符?
- python - 如何在python中设置protobuf字段或属性
- haskell - Haskell + Persistent:解析错误可能缩进不正确或括号不匹配
- html - 如何在动态创建的按钮中添加字体真棒图标
- swift - IntentHandler 无法读取 UserDefaults 但 Timeline 可以