#php #laravel-5
#php #laravel-5
Вопрос:
защищенная функция create(array $ data) { $request = запрос();
$profileImage = $request->file('image');
$profileImageSaveAsName = time(). "." . $profileImage->getClientOriginalExtension();
$profileImage->move('img', $profileImageSaveAsName);
$user=new User;
return $user->create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'image' => $profileImageSaveAsName,
]);
}
Комментарии:
1. Получаете ли вы данные изображения,
$request->file('image')?
Т.Е.enctype="multipart/form-data"
вы правильно добавили enctype к своему<form>
элементу?
Ответ №1:
Убедитесь, что у вас есть <form enctype="multipart/form-data">
.
Кроме того, вы немного усложняете ситуацию при сохранении изображения. (На самом деле я считаю, что вы должны хранить в storage/app/public/images
, а не public/images
)
$profileImage = $request->file('image');
$fileName = time() . Auth::id() . "-profile." . $profileImage->getClientOriginalExtension();
$path = $profileImage->storeAs('public/images', $fileName);
Чтобы это сработало, убедитесь, что вы выполнили команду symlink: php artisan storage:link
Ответ №2:
сначала проверьте, что вы добавляете в форму <form enctype="multipart/form-data">
и, во-вторых, вы не можете получить Auth::id()
,
поскольку пользователь не зарегистрирован, следовательно, сеанс не создан, тогда как вы можете получить id из Auth. вы также можете проверить с помощью dump и die dd(Auth::id)
, это даст null.
И о проверке. я предполагаю, что вы забыли разместить <form enctype="multipart/form-data">
, а также проверить, что у вас такое же имя в поле ввода, которое находится в валидаторе.
Комментарии:
1. Я изменил свой код на это, но он не вставляет никаких данных в мою базу данных, хотя я перенаправляюсь на домашнюю страницу без каких-либо ошибок??
2. @MonisHussain пользователь создан?
3. Я создаю страницу регистрации, где пользователь должен зарегистрироваться сам, и его данные будут вставлены в базу данных, но это не работает.. Я хочу вставить свой код, но не знаю, как это сделать??