Laravel外键格式错误

时间:2019-12-11 21:19:42

标签: php laravel

我在laravel应用程序上迁移表时遇到一些问题。 它总是说

  

PDOException::(“ SQLSTATE [HY000]:常规错误:1005无法创建表gamehostingreplies(错误号:150”外键约束格式不正确“)”) >

但是我看不到外键有问题,这是迁移

public function up()
    {
        Schema::create('replies', function (Blueprint $table) {
            $table->increments('id');
            $table->text('body');
            $table->integer('question_id')->unsigned();
            $table->integer('user_id');
            $table->foreign('question_id')->references('id')->on('questions')->onDelete('cascade');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('replies');
    }

顺便说一句,它首先添加了该表,然后添加了问题表,但是由于错误而停止了迁移。我将其设置为第一个迁移,但仍然存在相同的问题。

1 个答案:

答案 0 :(得分:2)

这意味着id表上的questions不是无符号整数。数据库中的question_id必须与id表上的questions具有相同的类型。可能失败的另一个原因是因为questions表和replies表没有相同的排序规则或相同的引擎。