为了账号安全,请及时绑定邮箱和手机立即绑定

是什么导致迁移失败并出现错误“只能在自动增量列上”

是什么导致迁移失败并出现错误“只能在自动增量列上”

PHP
aluckdog 2024-01-19 10:42:44
我的表帖子没有任何限制,我默认Laravel选择自动增量。它仍然失败,并显示“只能在自动增量列上”。移民public function up(){    Schema::create('posts', function (Blueprint $table) {        $table->id();        $table->id('user_id')->nullable();        $table->id('admin_id')->nullable();        $table->string('about')->nullable();        $table->decimal('price')->nullable();        $table->string('new_used')->nullable();        $table->string('negotiable')->nullable();        $table->dateTime('expire_date')->nullabe();              $table->timestamps();    });}
查看完整描述

2 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

您不能有多个自动递增列。将外键类型更改为unsignedInteger(),它应该可以工作。这通常是我创建 id 列加上两个外键的方式。


$table->increments('id');

$table->unsignedInteger('user_id')->nullable();

$table->unsignedInteger('admin_id')->nullable();

或者,您也可以创建外键引用。


$table->foreign('user_id')->references('id')->on('users');

$table->foreign('admin_id')->references('id')->on('users');


查看完整回答
反对 回复 2024-01-19
?
守着一只汪

TA贡献1872条经验 获得超3个赞

idon 方法是Blueprint一个别名,用于bigIncrements创建无符号大整数自动增量字段。

因此,该表的迁移中有 3 个自动增量字段,但只能有 1 个。


查看完整回答
反对 回复 2024-01-19
  • 2 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信