Add support for multiple detail sertifikat

Enhanced the request validation, model, and Blade template to support multiple detail sertifikat entries, which are now encoded in JSON format. Additionally, added a dynamic form for entry, including delete functionality for each sertifikat entry.
This commit is contained in:
Daeng Deni Mardaeni
2024-11-01 16:53:31 +07:00
parent 5201cdb0e3
commit 24b38ca4f1
4 changed files with 87 additions and 34 deletions

View File

@@ -63,6 +63,7 @@
public function update(PemilikJaminanRequest $request, $id, $pemilik)
{
$validate = $request->validated();
if ($validate) {
try {
$pemilik = PemilikJaminan::find($pemilik);
@@ -88,6 +89,7 @@
$districts = District::where('city_code', $pemilik->city_code)->get();
$villages = Village::where('district_code', $pemilik->district_code)->get();
$hubunganPemilik = HubunganPemilikJaminan::all();
$detailSertifikat = $pemilik->detail_sertifikat;
return view(
'lpj::pemilik_jaminan.form',
@@ -99,6 +101,7 @@
'villages',
'hubunganPemilik',
'pemilik',
'detailSertifikat'
),
);
}

View File

@@ -26,6 +26,7 @@
'address' => 'nullable|string',
'postal_code' => 'nullable|string|max:10',
'status' => 'nullable|boolean',
'detail_sertifikat' => 'nullable|string|max:255',
];
//$rules['nomor_id'] = 'nullable|max:16|unique:pemilik_jaminan,nomor_id,debiture_id,' . $this->debiture_id;
@@ -41,4 +42,26 @@
{
return true;
}
public function prepareForValidation() {
$detailSertifikat = [];
$names = $this->input('detail_sertifikat.name', []);
$nomorIds = $this->input('detail_sertifikat.nomor_id', []);
foreach ($names as $index => $name) {
if (isset($nomorIds[$index])) {
$detailSertifikat[] = [
'name' => $name,
'nomor_id' => $nomorIds[$index]
];
}
}
$this->merge([
'detail_sertifikat' => json_encode($detailSertifikat),
]);
}
}

View File

@@ -30,7 +30,8 @@ class PemilikJaminan extends Base
'status',
'authorized_at',
'authorized_status',
'authorized_by'
'authorized_by',
'detail_sertifikat',
];
public function province()