Helper validator dibuat untuk membantu proses validasi form pada codeigniter. Memiliki beberapa fitur validasi yang dapat digunakan. Terinspirasi dari validator laravel.
- Download file Validator_helper
- letakan pada folder helper codeigniter
- load file validator dengan cara
$this->load->helper("validator_helper");
$this->load->helper("validator_helper");
$validator = new Validator_helper;
$errors = $validator->setField("username", ["required", "max:30", "alpha_numeric"])
->setField("password", ["required", "min:8", "confirm", "password"])
->getErrors();
Jika terjadi error makan $errors
akan menghasilkan output array seperti berikut:
array(
"username" => "Pesan kesalahan sesuai validasi",
"password" => "Pesan kesalahan sesuai validasi"
);
peraturan penulisan pada setField
seperti berikut:
setField("nama_field", ["aturan"], "method");
// method: post || get -> default: post
Cara menggunakan validasi jika menggunakan inputan array seperti contoh berikut:
<form action="" method="POST">
<input type="text" name="field[]">
<input type="text" name="field[]">
</form>
Maka penulisan validasinya seperti berikut:
$validator->setField("field[]", ["rules"])->getErrors();
/**
* Output
* array(
* "field_0" => "Field 0 message aturan",
* "field_1" => "Field 1 message aturan",
* )
* /
Berbeda halnya dengan validasi input file array, anda cukup menuliskan nama fieldnya saja seperti contoh berikut:
<form action="" method="POST">
<input type="file" name="gambar[]">
<input type="file" name="gambar[]">
</for
Maka penulisan validasinya seperti berikut:
$validator->setField("gambar", ["rules"])->getErrors();
/**
* Output
* array(
* "gambar_0" => "Gambar 0 message aturan",
* "gambar_1" => "Gambar 1 message aturan",
* )
* /
- Required
setField("nama_field", ["aturan"], "method");
- Min panjang karakter
setField("nama_field", ["min:angka"], "method");
- Max panjang karakter
setField("nama_field", ["max:angka"], "method");
- Alpha Space hanya membolehkan huruf dan spasi
setField("nama_field", ["alpha_space"], "method");
- Alpha numeric hanya untuk huruf dan angka
setField("nama_field", ["alpha_space"], "method");
- Numeric hanya untuk angka
setField("nama_field", ["alpha_space"], "method");
- Regex membuat aturan regex sendiri menggunakan preg_match
setField("nama_field", ["regex:([a-z]+)"], "method");
- Db exists, data harus tersedia pada database
setField("nama_field", ["db_exists:table,column"], "method");
- Db unique, data harus belum tersedia pada database
setField("nama_field", ["db_unique:table,column,except,except_value"], "method");
- In, data harus sama dengan yang disediakan
setField("nama_field", ["in:opsi1,opsi2"], "method");
- Confirm, menyamakan field dengan field_confirm
setField("nama_field", ["confirm"], "method");
- Password, validasi password harus memiliki huruf besar, kecil dan angka minimal 1
setField("nama_field", ["password"], "method");
- Email, field input harus merupakan alamat email yang valid
setField("nama_field", ["email"], "method");
- Url harus merupakan alamat yang valid
setField("nama_field", ["url"], "method");
- Distinct, input field array harus unique
setField("nama_field", ["distinct"], "method");
- Extension, validasi extensi uploadfile
setField("nama_field", ["extension:jpeg,png"], "method");
- File size, validasi ukuran upload file
setField("nama_field", ["file_size:4000"], "method");
// size dalam bytes
- File required, maka upload file wajib di isi
setField("nama_field", ["file_required"], "method");
// size dalam bytes
Untuk sementera baru itu yang dapat saya buat. belum sesempuran milik laravel :)