Skip to content

Instantly share code, notes, and snippets.

@aldhinya
Last active April 5, 2022 11:59
Show Gist options
  • Save aldhinya/09c8573fda05cdb9fbcf6908212d95d4 to your computer and use it in GitHub Desktop.
Save aldhinya/09c8573fda05cdb9fbcf6908212d95d4 to your computer and use it in GitHub Desktop.
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Admin extends User
{
protected $table = 'admin';
public $primaryKey = 'id_admin';
protected $guarded = [];
}
<?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.']);
}
}
}
@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
@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
@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