83 lines
2.5 KiB
PHP
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()
|
|
]);
|
|
}
|
|
}
|
|
|
|
}
|