Я ищу лучший способ получения значений элементов формы внутри метода isValid ().
У меня было что-то вроде этого isValid ():
public function isValid($data) {
$start = (int)($data['start_hour'] . $data['start_minute']);
$end = (int)($data['end_hour'] . $data['end_minute']);
if ($start >= $end) {
$this->getElement('start_hour')->addError('Start time should be less than end time');
return false;
}
return parent::isValid($data);
}
, но проблема в том, что когдамоя структура данных меняется, я должен изменить валидацию тоже.Например, теперь значения start_hour , start_minute и т. Д. Становятся элементами многомерного массива, и мне нужно проверить правильность редактирования, например
public function isValid($data) {
$start = (int)($data['send']['start_hour'] . $data['send']['start_minute']);
$end = (int)($data['send']['end_hour'] . $data['send']['end_minute']);
.......
}
Было бы здорово получитьзначение элемента по постоянному ключу (например, имя элемента), поэтому мой isValid может выглядеть так:
public function isValid($data) {
$start = (int)($this->getElement('start_hour')->getValue() . $this->getElement('start_minute')->getValue());
$end = (int)($this->getElement('end_hour')->getValue() . $this->getElement('end_minute')->getValue());
.......
}
но $ this-> getElement ('start_hour') -> getValue () внутри метода проверки верните пустое значение.
Возможно ли получить значение элемента таким способом?
Спасибо.