2016-06-16 20 views
0

我正在嘗試更新laravel中的值。我有一個userupdate配置文件api,我可以用給定的參數和它們的值第一次更新值,但是當我更新相同的值時,它給我的用戶配置文件不存在。在laravel上更新記錄不止一次

我的代碼是:

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);} 

當我更新的價值它給了我這樣的響應第一次:

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

,當我打通過郵遞員的更新請求它給出了一個400錯誤的請求和響應是:

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

在update()函數中包含''id'=> $ id'會發生什麼? – dargue3

+0

它更新與給定的id假設如果id是2它將更新記錄對id 2,但是當我更新id 2而不更改任何參數和值它給我錯誤,我顯示上面。 –

+0

是否有可能讓客戶端模型代表這個數據庫表? – dargue3

回答

1

我建議重寫該函數看起來像th以下;主要是因爲它讀得更好,並使用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!']; 
} 
+0

謝謝@drague它工作:) –