Form validation berfungsi untuk membuat inputan form yang dimana form tersebut haruslah benar-benar terisi atau form tersebut tidak boleh kosong, tidak hanya itu saja form validation juga bisa menentukan jenis type apa saja yang bisa dipakai dalam form tersebut. Pada Zend Framework 2 telah tersedia yang namanya zend filter yang berguna untuk membuat dorm validation, dimana untuk menggunakannya sangat gampang dan mudah sekali yaitu hanya dengan memanggil library zend filter maka form validation yang ingin kita buat akan berjalan dengan lancar.
Untuk membuat form validation dengan mengguanakan zend filter dapat kita buat dengan cara sebagai berikut :
- Buatlah sebuah class input filter dengan diberi nama RegisterFilter.php dan disimpan file tersebut pada folder bagian src/Users/Form/RegisterFilter.php
- Buatlah source code seperti dibawah ini :
<?php
namespace Users\Form;
use Zend\InputFilter\InputFilter;
class RegisterFilter extends InputFilter
{
public function __construct()
{
$this->add(array(
'name'=>'email',
'required'=>true,
'validators'=>array(
array(
'name'=>'EmailAddress',
'options'=>array(
'domain'=>true,
),
),
),
));
$this->add(array(
'name'=>'name',
'required'=>true,
'filters'=>array(
array(
'name'=>'StripTags',
),
),
'validators'=>array(
array(
'name'=>'StringLength',
'options'=>array(
'encoding'=>'UTF-8',
'min'=>2,
'max'=>140,
),
),
),
));
$this->add(array(
'name'=>'password',
'required'=>true,
));
}
} - Buka file RegisterController.php
- Modifikasi file RegisterController.php dengan membuat method processAction seperti dibawah ini :
public function processAction()
{
if (!$this->request->isPost())
{
return $this->redirect()->toRoute(NULL,
array('controller'=>'register',
'action'=>'index',
));
}
$post = $this->request->getPost();
$form = new RegisterForm();
$inputFilter = new RegisterFilter();
$form->setInputFilter($inputFilter);
$form->setData($post);
if (!$form->isValid()) {
$model = new ViewModel(array(
'error'=>true,
'form'=>$form,
));
$model->setTemplate('users/register/index');
return $model;
}
return $this->redirect()->toRoute(NULL,
array('controller'=>'register',
'action'=>'confirm',
));
} - Sekarang buka browser anda dan buka form yang anda buat dengan alamat localhost://zendskeletonapplication/public/users/register
- Kemudian coba anda isikan nama email yang tidak sesuai dan juga coba anda kosongkan salah satu form, maka akan terlihat seperti berikut :
- Jika telah terlihat seperti diatas maka form validation telah sukses dibuat.
Tidak ada komentar:
Posting Komentar