好友请求仅发送一次

时间:2019-12-09 04:23:25

标签: laravel laravel-5 eloquent

这是我的朋友请求接受和拒绝的代码,但是一个用户多次发送请求同一用户。这不是权限...我如何才能完成完美的工作?这是我的代码。 您可以在数据库中看到问题。 enter image description here 如何分离2个API

  1. 发送朋友请求
  2. 接受/拒绝请求。

  public function request(Request $request) {
    $input =$request->all();

    $user = User::find($request->user_id_1);

    if(empty($user)){
        return [
            'status' => 'error',
            'msg' => 'no user found'
        ];
    


    if($request->approved == "yes"){
        $friend = new Friend();
        $friend->user_id_1 = $user->id;
        $friend->user_id_2 = Auth::guard('api')->user()->id;
        $friend->approved = "yes";

        $friend->save();            
        $data = array("status" => $user);
        return $data;
    }
    else{
        $friend->approved = false;
        $friend->save();
        return [
            'user_id' => $user->id,
            'true' => true
        ];
    }

    }

}

2 个答案:

答案 0 :(得分:0)

您要在相同的user_id_1有效负载中发送user_id_2request吗?如果是这样,在将request保存在数据库中之前,请检查user_id_1,user_id_2以及数据库中的批准状态,反之亦然。如果数据库中存在任何记录,则可以向用户提供error消息。

希望获得帮助。

答案 1 :(得分:0)

尝试这样的事情。

$request = 'Your request db model'::where([['user_id_1' => $request->user_id_1],['user_id_2' => $request->user_id_2]])
            ->orWhere([['user_id_1' => $request->user_id_2],['user_id_2' => $request->user_id_1]])->get();

        if($request != null){
            //say user you already sent a request.
        }

告诉我是否行得通。祝你好运。