php - 为什么 update 或 save() 在 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
推荐阅读
- node.js - 为什么我在cmd中编码node -v是成功的,但是在cmd中编码npm -v是错误的
- flutter - 如何调整 Flutter AppBar 的边距?
- javascript - 为什么当我提供不存在的 ID 时没有调用 404 错误
- c++ - 在 Linux 中编译 C++ 错误未定义对“__iob”的引用
- leaflet - 为什么传单演示不在 jsfiddle 上工作?
- c# - 如何使用链接按钮在页面之间传递值?
- python-3.x - 在 Python 中处理 XML
- javascript - 如何在 PHP 中将 html 转换为带有图像和所有样式(css)的 word doc 文件?
- sql - 如何在 ORACLE SQL 中打印前三行和后三行?
- java - 休眠搜索 JsonB 索引