Так что в настоящее время я пытаюсь добавить функциональность для обновления информации о пользователях, однако мне не очень повезло с этим.В настоящее время вместо обновления текущего пользователя мой код создает новую запись в базе данных.Возможно, я допустил очень простую ошибку, но не могу ее найти.
Просмотр настроек, где происходит редактирование:
@extends('layouts.app')
@section('content')
<form method="post" action="{{ route('updateProfile', $user) }}">
{{ csrf_field() }}
{{ method_field('patch') }}
<input type="text" name="first_name" value="{{ $user->first_name }}" />
<input type="text" name="last_name" value="{{ $user->last_name }}" />
<input type="text" name="username" value="{{ $user->username }}" />
<input type="email" name="email" value="{{ $user->email }}" />
<input type="password" name="password" />
<input type="password" name="password_confirmation" />
<button type="submit">Save Changes</button>
</form>
@endsection
Patch route:
Route::patch('/profile/{username}/update', 'UsersController@updateProfile')->name('updateProfile');
UserController:
public function updateProfile(Request $request, User $user){
$this->validate($request, [
'first_name' => 'required',
'last_name' => 'required',
'username' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|min:6|confirmed'
]);
$user->first_name = request('first_name');
$user->last_name = request('last_name');
$user->username = request('username');
$user->email = request('email');
$user->password = bcrypt(request('password'));
$user->save();
return back();
}
PagesController:
public function settings(){
$user = Auth::user();
return view('settings', compact('user'));
}