D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
forge
/
re-viewers.com
/
app
/
Http
/
Controllers
/
Admin
/
Filename :
UserProfileController.php
back
Copy
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Admin; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Storage; class UserProfileController extends Controller { public function show() { $user = auth()->user(); $user_img = $user->user_image && Storage::disk('public')->exists('images/' . $user->user_image) ? asset('storage/images/' . $user->user_image) : asset('assets/images/user-icons.jpg'); $lastActive = method_exists($user, 'lastActiveLog') ? $user->lastActiveLog() : null; return view('pages.user.profile', compact('user', 'user_img', 'lastActive')); } public function update(Request $request, Admin $user) { // 1. Validation $rules = [ 'name' => 'required|string|max:255', 'phone' => 'nullable|string|max:20', 'user_image' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048', ]; // Add email and password validation based on user type if ($user->user_type === 'Normal' || empty($user->user_type)) { $rules['email'] = 'required|email|unique:users,email,' . $user->id; $rules['password'] = 'nullable|string|min:6'; } $request->validate($rules); // 2. Prepare data $data = $request->only(['name', 'phone']); if ($user->user_type === 'Normal' || empty($user->user_type)) { $data['email'] = $request->email; } if ($request->filled('password')) { $data['password'] = Hash::make($request->password); } // 3. Handle file upload if ($request->hasFile('user_image')) { // Delete old image if it exists if ($user->user_image) { Storage::disk('public')->delete('images/' . $user->user_image); } $imageName = time() . '_' . $request->file('user_image')->getClientOriginalName(); $request->file('user_image')->storeAs('images', $imageName, 'public'); $data['user_image'] = $imageName; } // 4. Update user and redirect $user->update($data); return redirect()->route('home') ->with('success', 'User profile updated successfully.'); } }