Php 尝试更新属性导致批量更新[Laravel 5]

Php 尝试更新属性导致批量更新[Laravel 5],php,laravel,laravel-5.3,Php,Laravel,Laravel 5.3,我试图在数据库中更改单个项的值,我使用first()获取一个项,但由于某种原因,当我尝试此函数时,每个具有相同主键的项都会让经过身份验证的用户在1更新属性“AreFriend”,为什么 public function acceptrequest($id) { $user = app('Dingo\Api\Auth\Auth')->user(); if (!$targetuser = User::find($id)) { return response(

我试图在数据库中更改单个项的值,我使用first()获取一个项,但由于某种原因,当我尝试此函数时,每个具有相同主键的项都会让经过身份验证的用户在1更新属性“AreFriend”,为什么

public function acceptrequest($id)
{
     $user = app('Dingo\Api\Auth\Auth')->user();
     if (!$targetuser = User::find($id)) {
         return response()->json(['status' => "The requested resource does not exists!"], 403);
     }
     if ($relation = $user->requestspending()->where('user_id', $targetuser->user_id)->first()) {
         Friend::unguard();
         $relation->AreFriend = 1;
         $relation->save();
         Friend::unguard();
         Friend::reguard();
         return response()->json(['status' => "Request accepted!"], 200);
     } else {
            return response()->json(['status' => "You do not have an invitation from this user!"], 403);
     }
}

在我的数据库中,与$user id的关系被更新。变量$relation是一个项,而不是一个集合。

$user->requestExpensing()->where('user\u id',$targetuser->user\u id)->first()
已经这样做了。我得到的关系很好,只是当我尝试更改$relation的属性时,它会更新所有内容。
dd($relation)的输出是什么?但是,如何调用
acceptrequest()
函数?(该函数名中缺少camelCase)它返回一个App\Http\Classes\Friend模型,我得到正确的关系,我从API路由调用function。用户id是主键吗?