Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // E-mail (generates "Value is required and can't be empty" - but what if the field should be optional? Where is this validator added?
- $email = new ElementEmail('email'); // If I change to "ElementText", there are no problems
- $email->setLabel('E-mail address');
- $email->setLabelAttributes(array(
- 'for' => $email->getName(),
- 'class' => 'some class'
- ));
- $email->setAttributes(array(
- 'id' => $email->getName(),
- 'placeholder' => 'E.g. andy@gmail.com',
- 'class' => 'some class'
- ));
- // Gender dropdown (generates "Value is required and can't be empty error")
- $gender = new ElementSelect('gender');
- $gender->setLabel('Gender');
- $gender->setEmptyOption('Choose your gender'); // Remove this and the error disappears
- $gender->setLabelAttributes(array(
- 'for' => $gender->getName(),
- 'class' => 'some class'
- ));
- $gender->setAttributes(array(
- 'id' => $gender->getName(),
- 'class' => 'some class'
- ));
- $gender->setValueOptions(array(
- '1' => 'Male',
- '0' => 'Female' // This is selected on postback when the empty option is selected. If I change the value to 3, for instance, it works fine
- ));
- $this->add($email);
- $this->add($gender);
- public function registerAction() {
- $registerForm = new RegisterForm();
- $request = $this->getRequest();
- if ($request->isPost()) {
- $registerForm->setData($request->getPost());
- if ($registerForm->isValid()) {
- // Nothing here yet
- }
- }
- return new ViewModel(array('form' => $registerForm));
- }
- $form = $this->form;
- $email = $form->get('email');
- $gender = $form->get('gender');
- // E-mail
- echo $this->formLabel()->openTag($email) . $email->getLabel() . $this->formLabel()->closeTag();
- echo $this->formInput($email);
- echo $this->formElementErrors($email);
- // Gender
- echo $this->formLabel()->openTag($gender) . $gender->getLabel() . $this->formLabel()->closeTag();
- echo $this->formSelect($gender);
- echo $this->formElementErrors($gender);
- $form->prepare(); // this is another new thing and necessary
- $input = $form->getInputFilter();
- $e_filter = $input->get('email');
- $e_filter->setRequired(false);
- $g_filter = $input->get('gender');
- $g_filter->setRequired(false);
- $post = array('gender' => '');
- $bool = in_array(0, $post); // this is true
- $bool = in_array(0, $post, true); // but this is false
- public function __construct($name = 'user') {
- ...
- $this->getInputFilter()->get('first_name')->setRequired(false);
- }
- ->setAllowEmpty(false)
- ->setRequired(false)
- @FormValidator({"name":"NotEmpty", "options":{"type":"string"}})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement