Filters adalah fungsi-fungsi yang bertugas mengubah nilai suatu object.

Di bawah ini adalah daftar filters yang sudah ada di module init:

  1. array Mengubah nilai menjadi array.
  2. boolean Mengubah nilai menjadi boolean.
  3. emptystr2null Mengubah nilai empty string menjadi null.
  4. float Mengubah nilai menjadi float.
  5. integer Mengubah nilai menjadi integer.
  6. lowercase Mengubah nilai menjadi lowercase.
  7. object Mengubah nilai menjadi object.
  8. round Membulatkan nilai suatu nilai float. Nilai konfig ini adalah jumlah angka dibelakang koma.
  9. string Mengubah nilai menjadi string.
  10. ucwords Mengimpelmentasikan fungsi ucwords ke nilai.
  11. uppercase Mengubah nilai menjadi uppercase.

Custom Filters

Jika filter yang tersedia masih kurang, maka developer di perbolehkan menambahkan filter buatannya sendiri. Pastikan membuat sebuah class dengan static method yang mengembalikan nilai akhir yang akan dikirimkan ke controler. Contoh di bawah adalah contoh sederhana filter yang mengubah suatu nilai menjadi integer:

namespace MyFilter\Filter;

class Custon
{
    static function int($value, $options, $object, $field, $filters){
        return (int)$value;
    }
}

Kemudian tambahkan filer tersebut ke konfigurasi module dengan cara berikut:

return [
    // ...
    'libValidator' => [
        'filters' => [
            'int' => 'MyFilter\\Filter\\Custom::int'
        ]
    ]
    // ...
];

Fungsi ini akan di panggil oleh validator dengan parameters:

  1. $value Nilai yang perlu di proses.
  2. $options Nilai properti filters di konfigurasi. Pada contoh di bawah, nilai dari $options adalah true.
  3. $object Object darimana nilai ini diambil.
  4. $fields Nama properti dari nilai ini pada $object.
  5. $filters Daftar filters yang lain yang juga di implementasikan ke nilai ini.

Filter tersebut kemudian bisa digunakan di validator dengan bentuk seperti:

$rules = [
    'age' => [
        'rules' => [...],
        'filters' => [
            'int' => true
        ]
    ]
];