From 05967cce752f78944991d6f183974d73759b67fa Mon Sep 17 00:00:00 2001 From: Irwan Cahyono Date: Tue, 26 May 2026 13:01:57 +0700 Subject: [PATCH] test value --- .../Ekosistem/ValueBasisDataController.php | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Web/Ekosistem/ValueBasisDataController.php b/app/Http/Controllers/Web/Ekosistem/ValueBasisDataController.php index 8279d3b..16597ca 100644 --- a/app/Http/Controllers/Web/Ekosistem/ValueBasisDataController.php +++ b/app/Http/Controllers/Web/Ekosistem/ValueBasisDataController.php @@ -21,6 +21,13 @@ use App\Models\Core\Program; class ValueBasisDataController extends Controller { + private $tableModelClassMap = [ + 'master_provinsi' => \App\Models\Wilayah\Provinsi::class, + 'master_kabupaten_kota' => \App\Models\Wilayah\KabupatenKota::class, + 'master_kecamatan' => \App\Models\Wilayah\Kecamatan::class, + 'master_desa_kelurahan' => \App\Models\Wilayah\DesaKelurahan::class, + ]; + public function index(Request $request, string $tabelId): View { if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) { @@ -198,7 +205,12 @@ class ValueBasisDataController extends Controller if ($k->tipe == 'foreign_key') { $relasi['kolom_id'] = $k->id; try { - $options_kolom = DB::table($k->relasi_tabel)->selectRaw($k->relasi_kolom_label . ' as label, ' . $k->relasi_kolom_id . ' as value')->whereNull('deleted_at'); + $modelClass = $this->tableModelClassMap[$k->relasi_tabel] ?? null; + if ($modelClass) { + $options_kolom = $modelClass::select($k->relasi_kolom_label . ' as label', $k->relasi_kolom_id . ' as value')->whereNull('deleted_at'); + } else { + $options_kolom = DB::table($k->relasi_tabel)->selectRaw($k->relasi_kolom_label . ' as label, ' . $k->relasi_kolom_id . ' as value')->whereNull('deleted_at'); + } $relasi['options'] = $options_kolom->get(); $relasi['sql'] = $options_kolom->toSql(); } catch (\Throwable $th) { @@ -281,9 +293,6 @@ class ValueBasisDataController extends Controller return redirect()->route('tabel.data.index', [$tabelId, 'program_id' => $program->id])->with('success', 'Data berhasil ditambahkan.'); } - /** - * Display the specified resource. - */ public function show(Request $request, string $tabelId, string $id): View { if (!Gate::any(['super_admin', 'admin'])) { @@ -329,7 +338,9 @@ class ValueBasisDataController extends Controller foreach ($values as $v) { $k = $kolom->where('id', $v->kolom_id)->first(); if ($k->tipe == 'foreign_key') { - $v->value_relasi_label = DB::table($k->relasi_tabel)->where($k->relasi_kolom_id, $v->value_relasi)->value($k->relasi_kolom_label); + $v->value_relasi_label = DB::table($k->relasi_tabel) + ->where($k->relasi_kolom_id, $v->value_relasi) + ->value($k->relasi_kolom_label); } else if ($k->tipe == 'enum') { $opsi = collect($k->enum_opsi); $found = $opsi->first(function ($item) use ($v) {