Files
sccs_laravel/app/Http/Controllers/AdminController.php
2025-11-04 16:23:40 +05:00

83 lines
2.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\User;
use App\Traits\ImageHelper;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules\Password;
class AdminController extends Controller
{
use ImageHelper;
public function edit()
{
$pageConfigs = [
'pageHeader' => true,
'showMenu' => true
];
$breadcrumbs = [['link' => '/admin/profile', 'name' => 'Profile'], ['name' => 'Edit']];
$users = User::where('role','MANAGER')->get();
return view('content.admin.edit', [
'pageConfigs' => $pageConfigs,
'breadcrumbs' => $breadcrumbs,
'user' => auth()->user(),
'users' => $users
]);
}
public function update(Request $request, User $admin)
{
$request->validate([
'fullName' => ['required', 'min: 3'],
'fatherName' => ['required', 'min: 3'],
'email' => ['required', 'email'],
'phone' => ['required'],
'password' => ['nullable', 'confirmed', Password::min(8)],
'cnic' => ['nullable','numeric','digits:13'],
'address' => ['nullable'],
'gender' => ['required'],
'notes' => ['nullable'],
'profileImage' => ['nullable', 'image'],
]);
try {
DB::beginTransaction();
$admin->name = $request->fullName;
$admin->father_name = $request->fatherName;
$admin->email = $request->email;
$admin->phone = $request->phone;
$admin->dob = $request->dob;
$admin->gender = $request->gender;
$admin->cnic = $request->cnic;
if ($request->password){
$admin->password = Hash::make($request->password);
}
if ($request->hasFile('profileImage')) {
$prefix = 'profileImage';
$bannerImagePath = $this->updateFile($request->profileImage, $admin->picture, $prefix, false);
$admin->picture = $bannerImagePath;
}
$admin->update();
DB::commit();
return redirect()->back()->with([
'success' => "Profile updated successfully"
]);
} catch (\Throwable $exception) {
DB::rollBack();
return redirect()->back()->with([
'error' => $exception->getMessage()
]);
}
}
}