为什么更新会在数据库中产生这样的结果 ` {"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]);

 }


摇曳的蔷薇
浏览 74回答 2
2回答

森栏

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

慕容3067478

您正在更新错误的值,它应该是这样的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]
打开App,查看更多内容
随时随地看视频慕课网APP