shahzad hussain
shahzad hussain

Reputation: 39

Updates records more than one time on laravel

I am trying to update values in laravel. I have a userupdate profile api which I can update the values first time with given parameters and their values but 2nd time when I update same values it gives me user profile does not exist.

My Code is :

  public function UpdateUserProfile(Request $request)
  {

    $id = $request->input('id');
    $client_gender = $request->input('client_gender');
    $client_age = $request->input('client_age');
    $client_weight = $request->input('client_weight');
    $client_height = $request->input('client_height');
    $client_dob = $request->input('client_dob');

   $profile= DB::table('clients')
        ->where('id',$id)
        ->update(['client_gender'=>$client_gender,'client_age'=>$client_age,'client_height'=>$client_height,'client_weight'=>$client_weight,'client_dob'=>$client_dob]);
    if($profile)
    {
        $resultArray = ['status' => 'true', 'message' => 'User profile updated Successfully!'];
        return Response::json( $resultArray, 200);
    }
        $resultArray = ['status' => 'false', 'message' => 'User profile does not exist!'];
        return Response::json($resultArray, 400);}

first time when I update the value it gives me the response like this:

  {
"status": "true",
"message": "User profile updated Successfully!"
  }

and when I hit the update request through a postman it gives a 400 Bad request and response is :

{
"status": "false",
"message": "User profile does not exist!"
}

Upvotes: 0

Views: 62

Answers (1)

dargue3
dargue3

Reputation: 2922

I'd recommend rewriting that function to look like the following; mostly because it reads better and uses the Model methods that are more commonly found in Laravel

public function UpdateUserProfile(Request $request)
{
    // this code fails if there is no client with this id
    $client = App\Client::findOrFail($request->id);

    // attach new values for all of the attributes
    $client->client_gender = $request->input('client_gender');
    $client->client_age = $request->input('client_age');
    $client->client_weight = $request->input('client_weight');
    $client->client_height = $request->input('client_height');
    $client->client_dob = $request->input('client_dob');

    // save
    $client->save();
    return ['status' => 'true', 'message' => 'User profile updated Successfully!'];
}

Upvotes: 1

Related Questions