Zend Validate - Как вы передаете значения контекста из другой подчиненной формы? - PullRequest
2 голосов
/ 17 августа 2010

Я разделил форму на 3 подформы и для одного из элементов в последней подформе я создаю валидатор, который расширяет Zend_Validator_Abstract.

Этот валидатор должен проверить, что значение, на второй SubForm, не пусто.Однако это значение не будет в массиве $context для элемента в третьей подформе.

Как разумно сделать это значение доступным в $context для всех подформ?

...

После некоторых размышлений я могу думать только о том, чтобы передать ссылку на родительскую форму конструктору Validator, несмотря на то, что он нарушает инкапсуляцию.

1 Ответ

3 голосов
/ 19 августа 2010

Вы также можете попробовать переопределить объект формы isValid () и использовать доступную там переменную $ data.

Например:

<?php 
class MyForm extends Zend_Form {
    public function isValid($data) {
        // check $data['fieldname'] or add a new validator here, then...
        return parent::isValid($data);
    }
}
...