| Current Path : /var/www/html/reddsis/app/Http/Controllers/Backend/ |
| Current File : /var/www/html/reddsis/app/Http/Controllers/Backend/FrontendUserController.php |
<?php
namespace App\Http\Controllers\Backend;
use App\Http\Controllers\Controller;
use App\Http\Requests\Backend\UserRequest;
use App\Models\Backend\FrontendUser;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Storage;
class FrontendUserController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(Request $request)
{
$search = $request->get('search');
$frontendUsers = FrontendUser::when($search, function ($q) use ($search) {
$q->where(function ($sub) use ($search) {
$sub->where('username', 'like', "%{$search}%")
->orWhere('email', 'like', "%{$search}%")
->orWhere('first_name', 'like', "%{$search}%")
->orWhere('last_name', 'like', "%{$search}%");
});
})
->orderBy('created_at', 'desc')
->paginate(10)->onEachSide(1)->withQueryString();
return view(
'backend.module.frontendUser.index',
[
'frontendUsers' => $frontendUsers,
'search' => $search,
]
);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view(
'backend.module.frontendUser.create'
);
}
/**
* Store a newly created resource in storage.
*/
public function store(UserRequest $request)
{
// Validation is automatically handled by UserRequest
$user = FrontendUser::create([
'username' => $request->username,
'email' => $request->email,
'password' => Hash::make($request->password),
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'is_active' => $request->is_active ?? 1,
]);
if ($request->hasFile('profile_picture')) {
$path = $request->file('profile_picture')->store('profile_pictures/frontend', 'public');
$user->update(['profile_picture' => $path]);
}
// OPTIONAL: send verification email
if ($request->send_verification_email) {
$user->sendEmailVerificationNotification();
}
flash()->success('Frontend User created successfully!');
return redirect()->route('frontend-user.index');
}
/**
* Display the specified resource.
*/
public function show($id)
{
$frontendUsers = FrontendUser::findOrFail($id);
return view(
'backend.module.frontendUser.show',
[
'frontendUsers' => $frontendUsers
]
);
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$frontendUsers = FrontendUser::findOrFail($id);
return view(
'backend.module.frontendUser.edit',
[
'frontendUsers' => $frontendUsers
]
);
}
/**
* Update the specified resource in storage.
*/
public function update(UserRequest $request, $id)
{
$frontendUsers = FrontendUser::findOrFail($id);
$data = [
'username' => $request->username,
'email' => $request->email,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'is_active' => $request->is_active ?? $frontendUsers->is_active,
];
if ($request->filled('password')) {
$data['password'] = Hash::make($request->password);
}
if ($request->hasFile('profile_picture')) {
if ($frontendUsers->profile_picture) {
Storage::disk('public')->delete($frontendUsers->profile_picture);
}
$data['profile_picture'] = $request->file('profile_picture')->store('profile_pictures/frontend', 'public');
}
$frontendUsers->update($data);
flash()->success('Frontend User updated successfully!');
return redirect()->route('frontend-user.index');
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
$frontendUsers = FrontendUser::findOrFail($id);
$frontendUsers->delete();
flash()->success('Frontend User deleted successfully.');
return redirect()->route('frontend-user.index');
}
}