Я делаю CMS с Laravel 8, и в этой CMS я сделал страницу для редактирования информации профиля пользователя.
Итак, вот форма:
<form method="POST" action="{{ route('profile.info.confirm') }}">
@csrf
<label class="col-lg-2 control-label" for="name">Name</label>
<input id="name" name="name" type="text" class="form-control" value="{{ auth()->user()->name }}">
<label class="col-lg-2 control-label " for="email">Email</label>
<input id="email" name="email" type="text" class="form-control" value="{{ auth()->user()->email }}">
<label class="col-lg-2 control-label " for="email">Profile Pic</label>
<input id="avatar" name="avatar" type="file" class="email form-control">
<label class="col-lg-2 control-label " for="email"></label>
@if(Auth::user()->photo_id)
<img src="{{ Auth::user()->photo->path }}" width="50" height="50" alt="user-img" title="{{ Auth::user()->photo->name }}" class="img-circle img-thumbnail img-responsive">
@else
<p>You don't have any profile picture</p>
@endif
<button class="btn btn-primary">
UPDATE
</button>
</form>
Затем в Контроллере:
public function postProfileInfo(Request $request)
{
$data = $request->validate([
'name' => 'required',
'email' => 'required',
'avatar' => 'mimes:jpeg,jpg,png,gif|max:10000|nullable'
]);
$user = new User();
if($file = $request->file('avatar')){
$name = time() . $file->getClientOriginalName();
$file->move('images', $name);
$photo = new Photo();
$photo->name = $file->getClientOriginalName();
$photo->path = $name;
$photo->user_id = Auth::id();
$photo->save();
$user->photo_id = $photo->id;
}
$user->name = $data['name'];
$user->email = $data['email'];
$user->save();
return redirect('/admin');
}
Теперь проблема в том, что всякий раз, когда я пытаюсь отправить форму, я получаю следующее сообщение об ошибке:
Illuminate \ Database \ QueryException SQLSTATE [HY000]: общая ошибка: 1364 Поле «пароль» не имеет значения по умолчанию (SQL: вставить в
users
(name
,updated_at
,created_at
)
В принципе, я не хочу обновлять пароль, я просто хочу обновить name
, email
& avatar
(необязательно).
Так что здесь не так?