Загрузка данных


<?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', 'Пароль изменён');
    }
}