diff --git a/app/Http/Controllers/JenisLegalitasJaminanController.php b/app/Http/Controllers/JenisLegalitasJaminanController.php index 9c6f4e9..1bb1446 100644 --- a/app/Http/Controllers/JenisLegalitasJaminanController.php +++ b/app/Http/Controllers/JenisLegalitasJaminanController.php @@ -8,6 +8,7 @@ use Maatwebsite\Excel\Facades\Excel; use Modules\Lpj\Exports\JenisLegalitasJaminanExport; use Modules\Lpj\Http\Requests\JenisLegalitasJaminanRequest; + use Modules\Lpj\Models\customField; use Modules\Lpj\Models\JenisLegalitasJaminan; class JenisLegalitasJaminanController extends Controller @@ -40,13 +41,15 @@ public function create() { - return view('lpj::jenis_legalitas_jaminan.create'); + $customFields = CustomField::orderBy('urutan_prioritas', 'asc')->get(); + return view('lpj::jenis_legalitas_jaminan.create',compact('customFields')); } public function edit($id) { $jenisLegalitasJaminan = JenisLegalitasJaminan::find($id); - return view('lpj::jenis_legalitas_jaminan.create', compact('jenisLegalitasJaminan')); + $customFields = CustomField::orderBy('urutan_prioritas', 'asc')->get(); + return view('lpj::jenis_legalitas_jaminan.create', compact('jenisLegalitasJaminan', 'customFields')); } public function update(JenisLegalitasJaminanRequest $request, $id) diff --git a/app/Http/Requests/JenisLegalitasJaminanRequest.php b/app/Http/Requests/JenisLegalitasJaminanRequest.php index 82fb205..b6ca8a1 100644 --- a/app/Http/Requests/JenisLegalitasJaminanRequest.php +++ b/app/Http/Requests/JenisLegalitasJaminanRequest.php @@ -20,6 +20,8 @@ 'slug' => 'required|max:255', 'custom_field' => 'nullable|max:255', 'custom_field_type' => 'nullable|max:255', + 'custom_fields' => 'nullable|array', + 'custom_fields.*' => 'required|string|max:255', ]; } @@ -46,5 +48,10 @@ 'slug' => Str::slug($this->name), ]); } + + // Ensure custom_fields is always an array + if (!is_array($this->custom_fields)) { + $this->merge(['custom_fields' => []]); + } } } diff --git a/app/Models/JenisLegalitasJaminan.php b/app/Models/JenisLegalitasJaminan.php index dd8f840..aefba67 100644 --- a/app/Models/JenisLegalitasJaminan.php +++ b/app/Models/JenisLegalitasJaminan.php @@ -7,5 +7,14 @@ class JenisLegalitasJaminan extends Base { protected $table = 'jenis_legalitas_jaminan'; - protected $fillable = ['code', 'name','slug','custom_field','custom_field_type']; + protected $fillable = ['code', 'name','slug','custom_field','custom_field_type','custom_fields']; + + protected $casts = [ + 'custom_fields' => 'array', + ]; + + public function customFields() + { + return $this->hasMany(CustomField::class); + } } diff --git a/database/migrations/2025_01_30_091713_add_custom_fields_to_jenis_legalitas_jaminan_table.php b/database/migrations/2025_01_30_091713_add_custom_fields_to_jenis_legalitas_jaminan_table.php new file mode 100644 index 0000000..b4ba94b --- /dev/null +++ b/database/migrations/2025_01_30_091713_add_custom_fields_to_jenis_legalitas_jaminan_table.php @@ -0,0 +1,28 @@ +string('custom_fields')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('jenis_legalitas_jaminan', function (Blueprint $table) { + $table->dropColumn('custom_fields'); + }); + } +}; diff --git a/resources/views/jenis_legalitas_jaminan/create.blade.php b/resources/views/jenis_legalitas_jaminan/create.blade.php index d8e273a..c0e6632 100644 --- a/resources/views/jenis_legalitas_jaminan/create.blade.php +++ b/resources/views/jenis_legalitas_jaminan/create.blade.php @@ -10,83 +10,107 @@
@endsection