カスタムバリデーターを ZF2 フォームに追加するにはどうすればよいですか? zf2 フォーム要素またはフォーム クラス自体にカスタム バリデータを追加して、複数の要素を相互に検証したいと考えています。
use Zend\Form\Form;
class MyForm extends Form {
public function init()
{
// Add some elements
$this->add(
$this->getFormFactory()->create(...);
}
// How can i add a custom validator here to the form or element?
}
}
私の現在の解決策
非常に単純ですが効果的です。フォーム クラスまたはフィールドセットは、インターフェイスZend\InputFilter\InputFilterProviderInterfaceを実装する必要があります。
今、私はこのようなものを追加することができます:
use Zend\Form\Form;
use Zend\InputFilter\InputFilterProviderInterface;
use \PayrollAccountingValidator;
class MyForm extends Form implements InputFilterProviderInterface {
public function init()
{
$this->getFormFactory()->create(
array(
'name' => 'salary',
'type' => 'Zend\Form\Element\Number',
'attributes' => array(
'min' => 0,
'step' => 1
),
'options' => array(
'label' => _('Salary?')
)
));
}
public function getInputFilterSpecification ()
{
return array(
'salary' => array(
'validators' => array(
new PayrollAccountingValidator($this)
)
)
);
}
}