Panada Framework 1.0.0 Documentation

Form Validation

Hal yang paling umum dilakukan pada aplikasi berbasis web adalah mengumpulkan data dari user. Data dikumpulkan melalui satu atau lebih form HTML. Data yang sudah terkumpul harus diolah, divalidasi dan kemudian ditampilkan pesan error jika ada data yang tidak sesuai.

Untuk mempermudah proses ini, Panada telah menyediakan tools validasi yang bisa digunakan untuk mempercepat pengolahan data yang bersumber dari form HTML.

Validation Rule

Petama-tama harus dibuat validation rule yang diletakkan di dalam sebuah class model. Class model ini harus extend dari class Resources\Validation. List rule di tempatkan pada sebuah method dengan nama setRules. Berikut adalah contoh rule untuk form registration:

Keterangan

  • username, email, password, repassword dan photo adalah nama atribut name yang ada di setiap field form HTML.
  • rules adalah daftar rule yang ingin diimplementasikan.
  • label adalah nama label yang digunakan untuk memudahkan user melakukan input.
  • filter, adalah daftar nama fungsi yang digunakan untuk mem-filter nilai input. Fungsi yang digunakan adalah semua fungsi native PHP yang bisa menerima satu parameter.

Setelah ini kita kan buat sebuah file view.

View File

Langkah selanjutnya adalah membuat sebuah file view yang berisi tag HTML dengan field-field yang dibutuhkan. Berikut adalah sebuah file dengan nama registration_form.php

Keterangan

Pada file HTML di atas, kita sudah menggunakan method $registration->errorMessages(). Jika method ini digunakan tanpa parameter apapun, maka nilai returnnya adalah array yang berisi daftar pesan error.

Jika penggunaan parameternya seperti berikut $registration->errorMessages(false, '<li>', '</li>'), maka data ditampilkan berupa string yang setiap errornya diawali dengan tag <li> dan diakhiri dengan tag </li>.

Jika parameter pertama diisi dengan nama field maka error yang ditampilkan adalah error pada field tersebut.

Controller

Berikut adalah contoh controller untuk menerima request dari form HTML.

Method validate() akan memberikan nilai true atau false:

bool $registration->validate();

Jika method validate() memberikan nilai true maka nilai input yang sudah divalidasi bisa didapatkan dari method value().

array $registration->value();

Rule List

Berikut adalah datar rule yang bisa digunakan:

Rule Keterangan Contoh
required Nilai field tidak boleh dikosongkan. rules => array('required')
email Nilai field harus berformat email. rules => array('email')
min Nilai field harus tidak kurang dari nilai yang telah ditentukan. rules => array('min' => 3)
max Nilai field harus tidak lebih dari nilai yang telah ditentukan. rules => array('max' => 10)
compare Membandingkan nilai sebuah field dengan field lain yang telah ditentukan. rules => array('max' => 10)
file Nilai field file tidak boleh dikosongkan. rules => array('compare' => 'comparator_field')
in Membandingkan nilai sebuah field dengan nilai yang sudah ditentukan sebelumnya. rules => array('in' => array('male','female'))
regex Membandingkan nilai sebuah field dengan pola regular expression yang sudah ditentukan sebelumnya. rules => array('regex' => '/[^a-zA-Z0-9s .,"\']/')
url Nilai field harus berformat URL. rules => array('url')
alpha Nilai sebuah field harus alphabet. rules => array('alpha')
numeric Nilai field harus berformat numeric. rules => array('numeric')
alphanumeric Nilai sebuah field harus alphabet dan atau numeric. rules => array('alphanumeric')
match Jumlah karakter nilai sebuah field sejumlah tertentu dengan ukuran yang sudah ditentukan sebelumnya. rules => array('match' => 7)
callback Nilai sebuah field divalidasi pada sebuah method yang kita buat sendiri. rules => array('callback' => 'methodName')

Costume Error Message

Kita bisa melakukan kostumasi terhadap pesan error yang ingin ditampilkan. Untuk melakukan ini kita bisa menggunakan method setRuleErrorMessages() yang dipanggil pada constructor model seperti contoh berikut:

Nilai %label%, %size% dan %comparatorLabel% akan digantikan dengan nilai yang sudah ditentukan.

Diskusi