Implementasi Controller
BaseWebUiController
adalah base yung di gunakan untuk di override nantinya , secara fungsi code ini sangat simple dimana hanya memerlukan fungsi model dan index
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Client\Request;
use Illuminate\Http\Request as HttpRequest;
use Illuminate\Routing\Controller as BaseController;
use Laravolt\Crud\CrudModel;
abstract class BaseWebUiController extends Controller
{
abstract public function model(): CrudModel;
public function index(HttpRequest $request)
{
return view("web.ui.basictable", [
"baseUrl" => url('/'),
"specPath" => $this->model()->getPath(),
]);
# code...
}
}
Silahkan tambahkan
$pathpada model yang akan kita buat tampilan webnya
Copntroller Yang extend
seperti biasa untuk controller yang melakukan extend tinggal buat file controller pada folder app/Http/Controllers/Web/Crud/master/
<?php
namespace App\Http\Controllers\Web\Crud\master;
use App\Http\Controllers\BaseWebUiController;
use App\Models\Pegawai;
use Laravolt\Crud\CrudModel;
class PegawaiController extends BaseWebUiController
{
public function model(): CrudModel
{
return new Pegawai();
}
}
Buat View
buatlah view pada folder resources/views/web/ui/basictable.blade.php dengan isi sebagai berikut
@extends('layouts.app')
@section('content')
<div class="mx-auto w-full">
<div>
<div id="base-alurkerja-table"
{{isset($baseUrl) ? 'base-url=' . $baseUrl . '' : ""}}
{{isset($tableName) ? 'table-name=' . $tableName . '' : ""}}
{{isset($specPath) ? 'spec-path=' .$specPath .'' : ""}}
{{isset($moduleName) ? 'module-name=' .$moduleName .'' : ""}} ></div>
</div>
</div>
@endsection
view tersebut akan memanggil component resources/js/components/BasicAlurkerjaTable.jsx yang akan melakukan render component alurkejra
Bagian Rute
pada bagian route web.php tambahkan discovery seperti di bawah ini
Route::group(['as'=>'account.'], function () {
\Spatie\RouteDiscovery\Discovery\Discover::controllers()->in(app_path('Http/Controllers/Web/Crud'));
} );
Membuat Menu
untuk membuat menu silahkan copy / edit bgian resources/views/includes/sidebar.blade.php dan tambahkan
Hasil yang di dapatkan
berikut tampilan yang di harapkman dari workaround di atas
