[英]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.