$builder = new FormBuilder($config);
$builder->create("message")
->add("firstName")
->add("lastName")
->add("email", new InputTypeField(array("type"=>"email", "validators"=> new Email() )))
->add("subject", new ChoiceField(array("choices"=>array()))) //InArray is implicit unless we configure our own ChoiceValidator in the "validators" key
->add("message", new TextareaField(array(
"validators" => array(
new NotEmpty(),
new StringLength(array("min"=>4))
)));
$data_array = array("firstName"=>"John");
$form = $builder->getForm($data_array);
Creating a Form class
class MessageForm extends AbstractForm{
public function configure(FormBuilder $builder)
{
$builder->add("firstName")
->add("lastName")
->add("email", new InputTypeField(array("type"=>"email", "validators"=> new Email() )))
->add("subject", new ChoiceField(array("choices"=>array()))) //ChoiceValidator is implicit unless we configure our own ChoiceValidator in the "validators" key
->add("message", new TextareaField(array(
"validators" => array(
new NotEmpty(),
new StringLength(array("min"=>4))
)))
}
public function getName()
{
return 'message';
}
}
$data_array = array("firstName"=>"John");
$form = new MessageForm($data_array, new FormBuilder());
Validating Forms
SimpleForm uses Zend Validator to manage the fields validation in its forms., (*4)
$builder->add("message", new TextareaField(array(
"label" => "Write your message",
"validators" => array(
new NotEmpty(),
new StringLength(array("min"=>4)
)))
);
In your controller, you can bind the request data and check if the form is valid, (*5)