我正在使用Laravel 5.5。我准备好了数据库,我有2个表。 1)users
2)users_auth_tokens
目前users
表中没有填写任何数据。
所以,我的要求是第一次任何第三个用户调用api获取Android设备的refreshToken
,我将插入数据('auth_token'
,'refresh_token'
,'token_validity'
)调用时进入users_auth_tokens
表。有一个字段user_id
,我想在第一次api调用时插入'0'
,当任何用户在登录后调用api时,我想更新相同的记录(user_id=0
)已登录user_id
。
但不幸的是,当我试图用user_id=0
插入记录时,它会给我一个错误:
“SQLSTATE [23000]:完整性约束违规:1452无法添加或 更新子行:外键约束失败 (
tracker
。users_auth_tokens
,CONSTRAINTusers_auth_tokens_user_id_foreign
FOREIGN KEY(user_id
)参考users
(id
)ON DELETE CASCADE)(SQL:insert intousers_auth_tokens
(auth_token
,validity
,refresh_token
,updated_at
,created_at
)值 (ETZEI11RY3D7RQE4XR6OBTNQHC6Q1ND187E5FD3E45281D3385D784C3D89C0697D46DDC, 1524135471,b87c88fdcf1eea0a6680620d8da77e4f0ee18b78,2018-04-19 10:52:51,2018-04-19 10:52:51))“
我知道为什么会出现此错误,因为user_id
中有外键{{1}}而且users_auth_tokens
表中没有任何记录!我尝试使用迁移中的默认值0并使其可以为空,但没有运气。
无论如何,我想在该表中插入users
。我在谷歌搜索一些技巧,但没有人帮助。
我的代码就像:
user_id=0
任何人都有解决方案吗?任何帮助将不胜感激!!
感谢。
答案 0 :(得分:1)
我已通过保存null
user_id而不是0
来修复此问题。
我需要在迁移文件中生成->nullable()
,当我保存记录时,我还需要保存null
值!
我试图保存user_id=0
,但没有运气,我用null
值修复了它!
感谢您的帮助@JonasStaudenmeir!
希望如果他们遇到同样的问题,这将有助于将来的任何其他用户!