#php #laravel #eloquent
#php #laravel #красноречивый
Вопрос:
когда я пытаюсь обновить столбец электронной почты для пользователя, я получаю странный ввод в базе данных, и я не понимаю, почему. Вывод в столбце email в базе данных выглядит примерно так {"email":"try@gmail.com"}
вместо просто email
HomeController
protected function createMail(Request $request)
{
$data = request()->validate([
'email' => 'required',
]);
$id = Auth::guard('web')->id();
User::where('id', $id)->update(['email' => $data]);
}
Ответ №1:
$data
в вашем случае определяется как результат ->validate()
функции, но вам нужно значение email.
Доступ к значению можно получить с помощью $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')]);
}
Ответ №2:
вы обновляете неправильное значение, и оно должно быть таким
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]