Advertisement
Guest User

Untitled

a guest
Jun 28th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. // E-mail (generates "Value is required and can't be empty" - but what if the field should be optional? Where is this validator added?
  2. $email = new ElementEmail('email'); // If I change to "ElementText", there are no problems
  3. $email->setLabel('E-mail address');
  4.  
  5. $email->setLabelAttributes(array(
  6. 'for' => $email->getName(),
  7. 'class' => 'some class'
  8. ));
  9.  
  10. $email->setAttributes(array(
  11. 'id' => $email->getName(),
  12. 'placeholder' => 'E.g. andy@gmail.com',
  13. 'class' => 'some class'
  14. ));
  15.  
  16. // Gender dropdown (generates "Value is required and can't be empty error")
  17. $gender = new ElementSelect('gender');
  18. $gender->setLabel('Gender');
  19. $gender->setEmptyOption('Choose your gender'); // Remove this and the error disappears
  20.  
  21. $gender->setLabelAttributes(array(
  22. 'for' => $gender->getName(),
  23. 'class' => 'some class'
  24. ));
  25.  
  26. $gender->setAttributes(array(
  27. 'id' => $gender->getName(),
  28. 'class' => 'some class'
  29. ));
  30.  
  31. $gender->setValueOptions(array(
  32. '1' => 'Male',
  33. '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
  34. ));
  35.  
  36. $this->add($email);
  37. $this->add($gender);
  38.  
  39. public function registerAction() {
  40. $registerForm = new RegisterForm();
  41. $request = $this->getRequest();
  42.  
  43. if ($request->isPost()) {
  44. $registerForm->setData($request->getPost());
  45.  
  46. if ($registerForm->isValid()) {
  47. // Nothing here yet
  48. }
  49.  
  50. }
  51.  
  52. return new ViewModel(array('form' => $registerForm));
  53. }
  54.  
  55. $form = $this->form;
  56. $email = $form->get('email');
  57. $gender = $form->get('gender');
  58.  
  59. // E-mail
  60. echo $this->formLabel()->openTag($email) . $email->getLabel() . $this->formLabel()->closeTag();
  61. echo $this->formInput($email);
  62. echo $this->formElementErrors($email);
  63.  
  64. // Gender
  65. echo $this->formLabel()->openTag($gender) . $gender->getLabel() . $this->formLabel()->closeTag();
  66. echo $this->formSelect($gender);
  67. echo $this->formElementErrors($gender);
  68.  
  69. $form->prepare(); // this is another new thing and necessary
  70.  
  71. $input = $form->getInputFilter();
  72. $e_filter = $input->get('email');
  73. $e_filter->setRequired(false);
  74.  
  75. $g_filter = $input->get('gender');
  76. $g_filter->setRequired(false);
  77.  
  78. $post = array('gender' => '');
  79. $bool = in_array(0, $post); // this is true
  80. $bool = in_array(0, $post, true); // but this is false
  81.  
  82. public function __construct($name = 'user') {
  83. ...
  84. $this->getInputFilter()->get('first_name')->setRequired(false);
  85. }
  86.  
  87. ->setAllowEmpty(false)
  88.  
  89. ->setRequired(false)
  90.  
  91. @FormValidator({"name":"NotEmpty", "options":{"type":"string"}})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement