无法添加约束

时间:2015-04-09 19:36:35

标签: php laravel-5

我一直得到这个例外:

[Illuminate\Database\QueryException]                                         
  SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL  
  : alter table `messages` add constraint messages_from_foreign foreign key (  
  `from`) references `id` (`users`))     

[PDOException]                                                          
  SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint 

这是我的CreateMessagesTable课程:

public function up()
    {
        Schema::create('messages', function(Blueprint $table)
        {
            $table->bigIncrements('id');
            $table->bigInteger('from', false, true);
            ...

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

这是我的CreateUsersTable课程:

public function up()
    {
        // http://laravel.com/docs/5.0/schema
        Schema::create('users', function(Blueprint $table)
        {
            $table->bigInteger('id', true, true);

           ...
        });
    }

我尝试仔细检查id中的users列和from中的messages列是否具有相同的数据类型。我想知道出了什么问题,以及为什么我不断收到约束错误信息。

1 个答案:

答案 0 :(得分:1)

这是你的问题:

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

值应该相反 - on使用表名,references指向该表中的列。

来源:Laravel Docs