首页 > 解决方案 > 设置非默认的自动增量: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( 、、、、、 )值(1 id,“ JOHN DOE” name,3,2019-03-11 13:50 :00, 2019-03-11 13:50:00))str_idupdated_atcreated_at

编辑:这是数据库中的条目

public function run()
    {
        $default = new Technician;
        $default->id = 1;
        $default->name = "DESCONOCIDO";
        $default->str_id = 1;
        $default->save();
    }

标签: phplaravel

解决方案


您可以使用此代码设置自动增量

$table->increments('id')->start_from($yourStartValue);

添加 start_from 并使用您的值作为开始


推荐阅读