<?php
namespace App\Http\Controllers;
use App\Models\KabupatenKota;
use App\Models\Kecamatan;
use App\Models\KelurahanDesa;
use App\Models\Provinsi;
use App\Models\Tps;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
$q = request()->query('q');
$datas = User::where('nama','like','%'.$q.'%')->orderBy('created_at','DESC')->paginate(10)->appends(['q'=>$q]);
return view('user.index',compact('datas','q'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
$provinsis = Provinsi::all();
$kabupatenKotas = KabupatenKota::all();
$kecamatans = Kecamatan::all();
$kelurahanDesas = KelurahanDesa::all();
$tps = Tps::with('kelurahan_desas')->get();
return view('user.create',compact('provinsis','kabupatenKotas','kecamatans','kelurahanDesas','tps'));
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$request->validate([
'nama' => 'required',
'email' => 'required|unique:users',
'password' => 'required',
'role' => 'required',
]);
DB::beginTransaction();
try {
User::create([
'nama'=>$request->nama,
'email'=>$request->email,
'password'=>bcrypt($request->password),
'role'=>$request->role,
'no_telp'=>$request->no_telp,
'no_wa'=>$request->no_wa,
'provinsi_id'=>$request->provinsi_id,
'kabupaten_kota_id'=>$request->kabupaten_kota_id,
'kecamatan_id'=>$request->kecamatan_id,
'kelurahan_desa_id'=>$request->kelurahan_desa_id,
'tps_id'=>$request->tps_id
]);
DB::commit();
return redirect()->route('user.index')->with('success','Data berhasil disimpan');
} catch (\Throwable $th) {
Log::error($th->getMessage());
DB::rollback();
return redirect()->route('user.index')->with('error','Data gagal disimpan');
}
}
/**
* Display the specified resource.
*/
public function show(User $user)
{
return view('user.show',compact('user'));
}
/**
* Show the form for editing the specified resource.
*/
public function edit(User $user)
{
$provinsis = Provinsi::all();
$kabupatenKotas = KabupatenKota::all();
$kecamatans = Kecamatan::all();
$kelurahanDesas = KelurahanDesa::all();
$tps = Tps::with('kelurahan_desas')->get();
return view('user.edit',['data'=>$user ,'provinsis'=>$provinsis,'kabupatenKotas'=>$kabupatenKotas,'kecamatans'=>$kecamatans,'kelurahanDesas'=>$kelurahanDesas,'tps'=>$tps]);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, User $user)
{
$request->validate([
'nama' => 'required',
'email' => 'required|unique:users,email,'.$user->id,
'role' => 'required',
]);
DB::beginTransaction();
try {
$user->update([
'nama'=>$request->nama,
'email'=>$request->email,
'role'=>$request->role,
'no_telp'=>$request->no_telp,
'no_wa'=>$request->no_wa,
'provinsi_id'=>$request->provinsi_id,
'kabupaten_kota_id'=>$request->kabupaten_kota_id,
'kecamatan_id'=>$request->kecamatan_id,
'kelurahan_desa_id'=>$request->kelurahan_desa_id,
'tps_id'=>$request->tps_id,
]);
if($request->password_baru){
$user->update([
'password'=>bcrypt($request->password_baru)
]);
}
DB::commit();
return redirect()->route('user.index')->with('success','Data berhasil diubah');
} catch (\Throwable $th) {
Log::error($th->getMessage());
DB::rollback();
return redirect()->route('user.index')->with('error','Data gagal diubah');
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(User $user)
{
DB::beginTransaction();
try {
$user->delete();
DB::commit();
return redirect()->route('user.index')->with('success','Data berhasil dihapus');
} catch (\Throwable $th) {
Log::error($th->getMessage());
DB::rollback();
return redirect()->route('user.index')->with('error','Data gagal dihapus');
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]