繁体   English   中英

laravel 中的 updateOrCreate 函数

[英]updateOrCreate Function in laravel

代码很好,我会仔细检查我的代码,但我没有发现我的代码有任何问题。 这不会在任何情况下更新或插入地址或新用户数据。

$user = User::updateOrCreate(
    [
        'id' => Auth::id(),
        'address' => auth()->user()->address
    ],
    [
        'address' => $request->address
    ]
);

if ($user)
    return response()->json([
        'status' => 200,
        'add' => $request->address,
        'msg' => 'Address Updated Successfully'
    ]);
else
    return response()->json([
        'status' => 200,
        'msg' => 'Error Occured'
    ]);

相同的代码在这里只是在参数中使用 user_id

$user = User::updateOrCreate(
    [
        'id' => $request->id
    ],
    [
        'address' => $request->address
    ]
);

if ($user)
    return response()->json([
        'status' => 200,
        'add' => $request->address,
        'msg' => 'Address Updated Successfully'
    ]);
else
    return response()->json([
        'status' => 200,
        'msg' => 'Error Occured'
    ]);

如果您在 UserController 中使用“updateOrCreate”方法,那么将它们放在同一个端点中并不是一个好习惯。 通常,“updateOrCreate”应该用于次要类型的数据。 对于主数据,创建和更新应该到达不同的端点,因此应该使用不同的方法。

此外,如果你有 Auth::id(),那么你就有了一个用户。 所以没有什么可以创造的。 要更新用户,只需使用 update 方法并获取具有 id 的用户。

要创建用户,请使用“store”方法传递值并在那里创建它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM