这是我的代码:
$user = \App\User::where('id', $uid)->firstOrFail();
$user->token()->updateOrCreate(['user_id' => $uid, 'type' => $type], [
'auth' => $auth_token,
'refresh' => $refresh_token,
'type' => $type
]);
我有两个型号User
和Token
,其中一对一'关系。
在第一行,我尝试将用户捕获到数据库中,然后使用updateOrCreate()
方法更新我的模型。
但是,正如您可以阅读它,我必须先使用选择器'user_id' => $uid
才能成功更新我的模型。我认为Eloquent应该能够以不同的方式管理它,而无需提出两个请求。
答案 0 :(得分:0)
您不必使用user_id
=>该查询的$ uid。它已经基于这种关系注入了它。您可以将其重写为:
$token = \App\User::where('id', $uid)->firstOrFail()->token()->updateOrCreate(['type' => $type], [
'auth' => $auth_token,
'refresh' => $refresh_token,
'type' => $type
]);