php - 为什么更新会在数据库中产生这个结果` {"email":"try@gmail.com"}`
问题描述
当我尝试为用户更新电子邮件列时,我在数据库中得到一个奇怪的输入,我不明白为什么。数据库中电子邮件列中的输出看起来像这样 {"email":"try@gmail.com"}
,而不仅仅是电子邮件
家庭控制器
protected function createMail(Request $request)
{
$data = request()->validate([
'email' => 'required',
]);
$id = Auth::guard('web')->id();
User::where('id', $id)->update(['email' => $data]);
}
解决方案
$data
在您的情况下被定义为->validate()
功能的结果,但您需要电子邮件的价值。
可以使用 访问值$request->get('email')
。
所以你的函数应该是这样的:
protected function createMail(Request $request)
{
$this->validate($request, [
'email' => 'required',
]);
$id = Auth::guard('web')->id();
User::where('id', $id)->update(['email' => $request->get('email')]);
}
推荐阅读
- angular - 如何在后端验证表单字段并在 Angular7 上显示它们?
- node.js - 如何匹配忽略逗号或任何其他特殊字符的文本
- javascript - 获取 ReactJS 中每个父评论的最深评论
- macos - NSPopover + NSBox 在暗模式色调/伽玛问题
- python - 错误 sqlite3.OperationalError:没有这样的列:false
- oracle - Oracle 遍历列上的值 (Oracle 11)
- karate - 如何通过maven指定输出目录?
- java - 如何在片段中加载新活动而不会丢失底部导航栏
- kubernetes - 如何在旅途中启用功能门?
- c++ - 如何从数组初始化对象数组?