Так что я расширяю AuthController
, чтобы добавить еще несколько полей, которые отлично работают, кроме ссылки на аватар пользователей (это URL длиной около 150 символов). Код выглядит следующим образом:Laravel 5.3 не вставлять URL-адрес в базу данных
return User::create([
'first_name' => ucfirst($first_name),
'last_name' => ucwords($last_name),
'email' => $data['email'],
'password' => bcrypt($data['password']),
'dob' => date("Y-m-d", strtotime($dob)),
'avatar' => $data['avatar'],
'gender' => $data['gender'],
]);
URL-адрес посылается с помощью скрытого поля, и я могу подтвердить его передачи, глядя на POST
данные о светлячок.
Когда я смотрю на журнал MySQL, я вижу вставку для остальных полей, но по какой-то причине она пропускает или пропускает поле avatar
вообще. MySQL журнала показывает:
Prepare insert into `users`
(`name`, `email`, `password`, `dob`, `gender`, `updated_at`, `created_at`)
values (?, ?, ?, ?, ?, ?, ?)
должно быть:
Prepare insert into `users`
(`name`, `email`, `password`, `dob`, `gender`, `avatar`, `updated_at`, `created_at`)
values (?, ?, ?, ?, ?, ?, ?, ?)
Я также добавил правило проверки:
'Аватара' => «иногда | URL | макс: 255,
Хотя Я не думаю, что проверка является проблемой, поскольку она не работает, даже если это прокомментировано.
Не думаю, что мне нужно сделать mysqli_real_escape_string, поскольку это PDO? Также это не проблема с кешем, поскольку я изменил и протестировал другие поля, и они работают нормально.
Есть ли у кого-нибудь другие идеи?
Благодаря
У вас есть 'свойство $ fillable' в вашей модели' User'? – TheFallen
Можете ли вы попробовать отправить строку без URL-адреса для аватара, что-то вроде «QA», и посмотреть, работает ли это правильно? Интересно, если Laravel каким-то образом запрещает URL-адрес –
Я такой идиот, забыл включить переменную в модель User ... thanks @TheFallen – Ash