Last active
April 5, 2022 11:59
-
-
Save aldhinya/09c8573fda05cdb9fbcf6908212d95d4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Models; | |
use Illuminate\Database\Eloquent\Model; | |
class Admin extends User | |
{ | |
protected $table = 'admin'; | |
public $primaryKey = 'id_admin'; | |
protected $guarded = []; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers\Admin; | |
use App\Http\Controllers\Controller; | |
use App\Models\Admin; | |
use Illuminate\Http\Request; | |
use Illuminate\Support\Facades\Hash; | |
use Exception; | |
use Illuminate\Support\Facades\Auth; | |
class AdminController extends Controller | |
{ | |
public function index() | |
{ | |
$admin = Admin::orderBy('created_at', 'desc')->get(); | |
return view('admin.admin.index', compact('admin')); | |
} | |
public function create() | |
{ | |
return view('admin.admin.create'); | |
} | |
public function store(Request $request) | |
{ | |
$request->validate([ | |
'nama' => 'required', | |
'username' => 'unique:admin|required', | |
'email' => 'unique:admin|required|email', | |
'nomor_telepon' => 'required', | |
'password' => 'required|min:6|confirmed', | |
]); | |
Admin::create([ | |
'nama_admin' => $request->nama, | |
'username' => $request->username, | |
'email' => $request->email, | |
'no_telp' => $request->nomor_telepon, | |
'password' => Hash::make($request->password), | |
]); | |
return redirect(route('admin.admin.index'))->with(['jenis' => 'success', 'pesan' => 'Berhasil menambah data Admin.']); | |
} | |
public function edit($id) | |
{ | |
$admin = Admin::findOrFail($id); | |
return view('admin.admin.edit', compact('admin')); | |
} | |
function update(Request $request, $id) | |
{ | |
$admin = Admin::find($id); | |
$request->validate([ | |
'nama' => 'required', | |
'username' => 'required|unique:admin,username,' . $admin->id_admin . ',id_admin', | |
'email' => 'required|unique:admin,email,' . $admin->id_admin . ',id_admin', | |
'nomor_telepon' => 'required', | |
]); | |
$admin->update([ | |
'nama_admin' => $request->nama, | |
'username' => $request->username, | |
'email' => $request->email, | |
'no_telp' => $request->nomor_telepon, | |
]); | |
if ($request->password) { | |
$request->validate([ | |
'password' => 'required|min:6|confirmed', | |
]); | |
$admin->update([ | |
'password' => Hash::make($request->password), | |
]); | |
} | |
return redirect(route('admin.admin.index'))->with(['jenis' => 'success', 'pesan' => 'Berhasil mengubah data Admin.']); | |
} | |
public function destroy($id) | |
{ | |
if(Auth::guard('admin')->user()->id_admin == $id) { | |
return redirect()->back()->with(['jenis' => 'danger', 'pesan' => 'Tidak dapat menghapus User anda sendiri.']); | |
} | |
try { | |
Admin::findOrFail($id)->delete(); | |
return redirect(route('admin.admin.index'))->with(['jenis' => 'success', 'pesan' => 'Berhasil menghapus data Admin.']); | |
} catch (Exception $e) { | |
return redirect(route('admin.admin.index'))->with(['jenis' => 'danger', 'pesan' => 'Gagal menghapus Data karena sedang digunakan.']); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@extends('layouts.admin') | |
@section('title') Tambah User Admin @endsection | |
@push('head') | |
@endpush | |
@section('body') | |
<div class="layout-px-spacing"> | |
<div class="page-header"> | |
<div class="page-title"> | |
<h3>Tambah User Admin</h3> | |
</div> | |
</div> | |
<div class="row" id="cancel-row"> | |
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing"> | |
<div class="widget-content widget-content-area br-6 mycontent"> | |
<form method="post" action="{{ route('admin.admin.store') }}" enctype="multipart/form-data" | |
class="formku"> | |
@csrf | |
<div class="row"> | |
<div class="form-group col-md-6"> | |
<label>Nama Lengkap <span class="text-danger">*</span></label> | |
<input type="text" class="form-control @error('nama') is-invalid @enderror" name="nama" | |
placeholder="Masukkan nama lengkap" value="{{ old('nama') }}" required> | |
@error('nama') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
<div class="form-group col-md-6"> | |
<label>Username <span class="text-danger">*</span></label> | |
<input type="text" class="form-control @error('username') is-invalid @enderror username" | |
name="username" placeholder="Masukkan username" value="{{ old('username') }}" | |
required> | |
@error('username') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
</div> | |
<div class="row"> | |
<div class="form-group col-md-6"> | |
<label>Email <span class="text-danger">*</span></label> | |
<input type="email" class="form-control @error('email') is-invalid @enderror" name="email" | |
placeholder="Masukkan email aktif" value="{{ old('email') }}" required> | |
@error('email') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
<div class="form-group col-md-6"> | |
<label>No Telepon</label> | |
<input type="text" | |
class="form-control @error('nomor_telepon') is-invalid @enderror phone_number" | |
name="nomor_telepon" placeholder="Masukkan nomor telepon" | |
value="{{ old('nomor_telepon') }}" required> | |
@error('nomor_telepon') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
</div> | |
<div class="row"> | |
<div class="form-group col-md-6"> | |
<label>Password <span class="text-danger">*</span></label> | |
<input type="password" class="form-control @error('password') is-invalid @enderror" | |
name="password" placeholder="Masukkan password minimal 6 digit"> | |
@error('password') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
<div class="form-group col-md-6"> | |
<label>Ulangi Password <span class="text-danger">*</span></label> | |
<input type="password" | |
class="form-control @error('password_confirmation') is-invalid @enderror" | |
name="password_confirmation" placeholder="Ulangi password"> | |
@error('password_confirmation') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
</div> | |
<button type="submit" class="mt-3 btn btn-primary btn-submit"><i class="mr-1 fa fa-save"></i> | |
Simpan</button> | |
</form> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
@endsection | |
@push('scripts') | |
@endpush |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@extends('layouts.admin') | |
@section('title') Edit User Admin @endsection | |
@push('head') | |
@endpush | |
@section('body') | |
<div class="layout-px-spacing"> | |
<div class="page-header"> | |
<div class="page-title"> | |
<h3>Edit User Admin</h3> | |
</div> | |
</div> | |
<div class="row" id="cancel-row"> | |
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing"> | |
<div class="widget-content widget-content-area br-6 mycontent"> | |
<form method="post" action="{{ route('admin.admin.update', $admin->id_admin) }}" | |
enctype="multipart/form-data" class="formku"> | |
@method('patch') | |
@csrf | |
<div class="row"> | |
<div class="form-group col-md-6"> | |
<label>Nama Lengkap <span class="text-danger">*</span></label> | |
<input type="text" class="form-control @error('nama') is-invalid @enderror" name="nama" | |
placeholder="Masukkan nama lengkap" value="{{ old('nama') ?? $admin->nama_admin }}"> | |
@error('nama') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
<div class="form-group col-md-6"> | |
<label>Username <span class="text-danger">*</span></label> | |
<input type="text" class="form-control @error('username') is-invalid @enderror username" | |
name="username" placeholder="Masukkan username" | |
value="{{ old('username') ?? $admin->username }}"> | |
@error('username') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
</div> | |
<div class="row"> | |
<div class="form-group col-md-6"> | |
<label>Email <span class="text-danger">*</span></label> | |
<input type="email" class="form-control @error('email') is-invalid @enderror" name="email" | |
placeholder="Masukkan email aktif" value="{{ old('email') ?? $admin->email }}"> | |
@error('email') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
<div class="form-group col-md-6"> | |
<label>No Telepon <span class="text-danger">*</span></label> | |
<input type="text" | |
class="form-control @error('nomor_telepon') is-invalid @enderror phone_number" | |
name="nomor_telepon" placeholder="Masukkan nomor telepon" | |
value="{{ old('nomor_telepon') ?? $admin->no_telp }}"> | |
@error('nomor_telepon') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
</div> | |
<div class="row"> | |
<div class="form-group col-md-6"> | |
<label>Password</label> | |
<input type="password" class="form-control @error('password') is-invalid @enderror" | |
name="password" placeholder="Masukkan password minimal 6 digit"> | |
@error('password') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
<p style="color:#e74c3c;">*Kosongi jika tidak ingin mengubah password</p> | |
</div> | |
<div class="form-group col-md-6"> | |
<label>Ulangi Password</label> | |
<input type="password" | |
class="form-control @error('password_confirmation') is-invalid @enderror" | |
name="password_confirmation" placeholder="Ulangi password"> | |
@error('password_confirmation') | |
<div class="invalid-feedback">{{ $message }}</div> | |
@enderror | |
</div> | |
</div> | |
<button type="submit" class="mt-3 btn btn-primary btn-submit"><i class="mr-1 fa fa-save"></i> | |
Simpan</button> | |
</form> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
@endsection | |
@push('scripts') | |
@endpush |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@extends('layouts.admin') | |
@section('title') Data User Admin @endsection | |
@push('head') | |
@endpush | |
@section('body') | |
<div class="layout-px-spacing"> | |
<div class="page-header"> | |
<div class="page-title"> | |
<h3>Data User Admin</h3> | |
</div> | |
</div> | |
<div class="row" id="cancel-row"> | |
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing"> | |
<div class="widget-content widget-content-area br-6"> | |
<div class="top-table"> | |
<a href="{{ route('admin.admin.create') }}" class="btn btn-primary btn-send"><i class="fa fa-plus"></i> Tambah</a> | |
@if(Session::has('pesan')) | |
<div class="alert alert-light-{{ Session::get('jenis') }} border-0 mt-3" role="alert"> | |
<strong>{{ Session::get('pesan') }}</strong> | |
</div> | |
@endif | |
</div> | |
<table class="table mt-2 dt-table-hover datatables" style="width:100%"> | |
<thead> | |
<tr> | |
<th>#</th> | |
<th>Nama</th> | |
<th>Username</th> | |
<th>Email</th> | |
<th>Telp</th> | |
<th>Last Login at</th> | |
<th>Last Login IP</th> | |
<th class="no-content">Aksi</th> | |
</tr> | |
</thead> | |
<tbody> | |
@foreach ($admin as $a) | |
<tr> | |
<td width="10">{{ $loop->iteration }}</td> | |
<td>{{ $a->nama_admin }}</td> | |
<td>{{ $a->username }}</td> | |
<td>{{ $a->email }}</td> | |
<td>{{ $a->no_telp }}</td> | |
<td>@if($a->last_login_at!=null) {{ \Carbon\Carbon::parse($a->last_login_at)->format('d F Y H:i') }} @else Belum Pernah Login @endif</td> | |
<td>@if($a->last_login_ip!=null) {{ $a->last_login_ip }} @else Belum Pernah Login @endif</td> | |
<td> | |
<a href="{{ route('admin.admin.edit', $a->id_admin) }}"><button class="btn btn-warning btn-sm"><i class="fas fa-pen"></i></button></a> | |
<form action="{{ route('admin.admin.destroy', $a->id_admin) }}" method="post" class="d-inline"> | |
@csrf | |
@method('DELETE') | |
<button class="btn btn-sm btn-danger" type="submit" onclick="return confirm('Yakin ingin HAPUS data ini?')" type="submit" data-toggle="tooltip" data-placement="top" title="Hapus"><i class="fas fa-trash"></i></button> | |
</form> | |
</td> | |
</tr> | |
@endforeach | |
</tbody> | |
</table> | |
</div> | |
</div> | |
</div> | |
</div> | |
@endsection | |
@push('scripts') | |
@endpush |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment