簡體   English   中英

為什么更新或save()在laravel 5.8中不起作用?

[英]why update or save() does not work in laravel 5.8?

我正在嘗試更新表(從我的反應本機應用程序獲取到laravel),我總是得到錯誤。 這是我如何獲取:

fetch("http://192.168.2.45/backend/public/api/checkuser", {
      method: "POST",
      body: JSON.stringify(user),
      headers: new Headers({
        "Content-Type": "application/json"
      })
    })

我的laravel api:

Route::post('update','mainController@update');

 public function update(Request $request)
    {

        $email = $request->email;


        $error_message="DENIED";
        $Success = "Success";


       if (user::where('email', '=',$email)->count() > 0) {
        $user = user::where('email', '=',$email);
        $user->image_name = $request->email;
        $user->save()--->
      here i get my error
      ( i have also tried where(....)->update(....)
      and i get the same error)
          return response()->json(['message' => $Success]);
         }else{
           return response()->json(['message' => $error_message]);
       }
   }

當您使用where的結果返回是一個Query Builder ,而不是你的用戶模型的項目上,你可以調用CRUD操作。 所以你應該得到結果並調用save,所以用這個替換你的塊:

if ($user = user::where('email', $email)->first()) {

    $user->image_name = $email;

    $user->save();

    return response()->json(['message' => $Success]);
}
// no need for an else block

return response()->json(['message' => $error_message]);

並解釋first()將返回null如果找不到記錄,這意味着false條件,它將返回您的錯誤消息,如果發現它將更新您的image_name到電子郵件。 (這沒有意義,但它是你的代碼)

更改查詢。您的搜索不返回結果。

$user = user::where('email', $email)->first();
if(isset($user))
{
$user->image_name = $email;
$user->save();
return response()->json(['message' => $Success]);
}
else
return response()->json(['message' => $error_message]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM