Study
CodeIgniter

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()).

Editor Latihan

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.