同桌的雄辩外键

rei*_*hin 3 schema laravel eloquent laravel-4

在Laravel 4的Eloquent中,

我有一个表user和一个字段user.friend_id,这也是一个用户的ID ..

但是当我尝试使用friend_id = 0创建一个新用户时,外键失败了..

当friend_id = 1时,它成功.

我在我的用户的架构构建器中有这个

$table->unsignedInteger('friend_id')->default(0)->nullable(); 
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

我应该刚刚创建了一个数据透视表吗?

谢谢!

Mor*_*ews 5

您不应为null able外键设置默认值0.

正确的方式:

$table->unsignedInteger('friend_id')->nullable(); 
Run Code Online (Sandbox Code Playgroud)

说明:

$table->unsignedInteger('friend_id')->default(0)->nullable(); 
Run Code Online (Sandbox Code Playgroud)

当您尝试插入新记录,并将friend_id留空.

  • 数据库采用字段的默认值,即:0
  • 因为它是一个外键,为了保持关系完整性,它将寻找具有主键0的记录(当然不存在)