I would like add a new validator (using inputFilter) into my collection.
The current code is as follows:
My Code Form:
namespace EventyEvent\Form;
use Zend\Form\Element;
use Zend\Form\Form;
use Zend\InputFilter\InputFilter;
use Zend\Stdlib\Hydrator\ClassMethods as ClassMethodsHydrator;
class EventEditBasicForm extends Form
{
public function __construct(){
parent::__construct();
$this ->setName('event')
->setAttribute('method', 'post')
->setAttribute("accept-charset", "UTF-8")
->setHydrator(new ClassMethodsHydrator(false))
->setInputFilter(new InputFilter());
// date
$this->add(array(
'type' => 'Zend\Form\Element\Collection',
'name' => 'dates',
'options' => array(
'label' => "Dates of your event",
'count' => 1,
'target_element' => array(
'type' => 'EventyEvent\Form\Basic\DateFieldset'
)
)
));
}
My Code Fieldset:
namespace EventyEvent\Form\Basic;
use EventyEvent\Entity\EventDates;
use Zend\Form\Fieldset;
use Zend\InputFilter\InputFilterProviderInterface;
use Zend\Stdlib\Hydrator\ClassMethods as ClassMethodsHydrator;
class DateFieldset extends Fieldset implements InputFilterProviderInterface{
public function __construct()
{
parent::__construct('EventDates');
$this->setHydrator(new ClassMethodsHydrator(false))
->setObject(new EventDates());
// date start
$this->add(array(
'name' => 'datestart',
'attributes' => array(
'required' => 'required',
'type'=>'Text',
),
'options'=>array(
'label'=>"Date start",
)
));
// date end
$this->add(array(
'name' => 'dateend',
'attributes' => array(
'required' => 'required',
'type'=>'Text',
),
'options'=>array(
'label'=>"Date end",
)
));
}
/**
* @return array
*/
public function getInputFilterSpecification()
{
return array(
'datestart' => array(
'required' => true,
'validators' => array(
array(
'name' => 'Date',
'options' => array(
'format' => 'd F Y - H:i'
),
),
),
),
'dateend' => array(
'required' => true,
'validators' => array(
array(
'name' => 'Date',
'options' => array(
'format' => 'd F Y - H:i'
),
),
),
),
);
}
}
I want to add a validator date is later before validation in my controller, but can I? Any tips, corrections or suggestions?