在Laravel 4的Eloquent中,
我有一个表user
和一个字段user.friend_id
,它也是用户的ID ..
但是当我尝试使用friend_id = 0创建新用户时,外键失败..
当friend_id = 1时,它会成功。
我在用户的架构构建器中有这个
$table->unsignedInteger('friend_id')->default(0)->nullable();
我应该在这做什么?
我应该刚创建一个数据透视表吗?
谢谢!
答案 0 :(得分:5)
您不应为null able外键设置默认值0。
正确的方式:
$table->unsignedInteger('friend_id')->nullable();
<强>解释强>
$table->unsignedInteger('friend_id')->default(0)->nullable();
当您尝试插入新记录时,将friend_id留空。
答案 1 :(得分:2)
假设您可以拥有多个朋友,那么是的,您应该有一个数据透视表
用户表
id | name
1 | Laurence
2 | Ben
3 | Jane
Users_Friend table
user_id | friend_id
1 | 2
1 | 3
这意味着劳伦斯是Ben和Jane的朋友