Validasi Lanjutan: Custom Rule
Penjelasan
Selain rule bawaan (required, min_length, dst), CodeIgniter memungkinkan aturan validasi kustom lewat closure langsung di array rules, cocok untuk validasi spesifik yang tidak ada rule bawaannya, mis. mengecek suatu nilai harus kelipatan angka tertentu.
Contoh Konsep
<?php
public function store()
{
$this->validate([
'jumlah' => [
'rules' => static function ($value, &$error = null) {
if ($value % 5 !== 0) {
$error = 'Jumlah harus kelipatan 5';
return false;
}
return true;
},
],
]);
}
Praktikum
Buat aturan validasi kustom lewat closure untuk field kodePos yang WAJIB berisi tepat 5 digit angka (pakai strlen() dan ctype_digit() atau is_numeric()).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Parameter kedua closure (&$error) memakai reference (&) supaya pesan error yang kamu set di dalam closure bisa "keluar" dan diambil CodeIgniter — kalau tanda & ini terlupa, pesan error custom kamu tidak akan pernah muncul walau validasinya tetap gagal dengan benar.