<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class ProfileController extends Controller
{
/**
* Показать профиль пользователя
*/
public function show()
{
$user = Auth::user();
$rentals = $user->rentals()->with('bike')->latest()->take(5)->get();
return view('profile.show', compact('user', 'rentals'));
}
/**
* Форма редактирования профиля
*/
public function edit()
{
$user = Auth::user();
return view('profile.edit', compact('user'));
}
/**
* Обновить профиль
*/
public function update(Request $request)
{
$user = Auth::user();
$request->validate([
'name' => 'required|string|max:100',
'surname' => 'required|string|max:100',
'phone' => 'nullable|string|max:20',
]);
$user->update($request->only(['name', 'surname', 'phone']));
return redirect()->route('profile.show')->with('success', 'Профиль обновлён');
}
/**
* Форма смены пароля
*/
public function passwordForm()
{
return view('profile.password');
}
/**
* Обновить пароль
*/
public function updatePassword(Request $request)
{
$request->validate([
'current_password' => ['required', 'current_password'],
'password' => ['required', 'confirmed', 'min:8'],
]);
Auth::user()->update([
'password' => Hash::make($request->password),
]);
return redirect()->route('profile.show')->with('success', 'Пароль изменён');
}
}