为了账号安全,请及时绑定邮箱和手机立即绑定

为什么更新会在数据库中产生这样的结果 ` {"email":" try@gmail.com "}`

为什么更新会在数据库中产生这样的结果 ` {"email":" try@gmail.com "}`

PHP
摇曳的蔷薇 2023-10-15 17:04:09
当我尝试更新用户的电子邮件列时,我在数据库中收到一个奇怪的输入,但我不明白为什么。数据库中电子邮件列中的输出看起来像这样,   {"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]); }
查看完整描述

2 回答

?
森栏

TA贡献1810条经验 获得超5个赞

$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')]);

 }


查看完整回答
反对 回复 2023-10-15
?
慕容3067478

TA贡献1773条经验 获得超3个赞

您正在更新错误的值,它应该是这样的


protected function createMail(Request $request)

{

  $this->validate($request, [

      'email' => 'required',

  ]);


  $id = Auth::guard('web')->id();

  User::where('id', $id)->update(['email' => $request->get('email')]);

 }

正如你所看到的request->get('email')而不是['email' => $data]


查看完整回答
反对 回复 2023-10-15
  • 2 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信