TYPO3 FormFactory, как получить доступ к нескольким значениям в пользовательском валидаторе? - PullRequest
1 голос
/ 04 августа 2020

задача довольно проста - у нас есть 2 поля, одно для начальной даты, а другое для конечной даты. один настраиваемый валидатор работает нормально и проверяет, что дата начала находится в будущем. второй настраиваемый валидатор должен подтвердить, что конечная дата не раньше начальной. поэтому валидатору нужны оба значения: startdate и enddate.

мы создаем форму в FormFactory:

$page = $this->form->createPage('event');
$startDateEl = $page->createElement('start', 'Text');
$startDateEl->addValidator($this->futurestart);
$endDateEl = $page->createElement('end', 'Text');
$endDateEl->addValidator($this->endnoconflictstart);

это валидаторы:

$this->futurestart = $this->objectManager->get(DateTimeFutureStartValidator::class);
$this->endnoconflictstart = $this->objectManager->get(DateTimeStartEndNoConflictValidator::class);

это вторая реализация валидатора:

namespace x\x\Validator;

use TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator;

class DateTimeStartEndNoConflictValidator extends AbstractValidator
{
    public function isValid($value)
    {
        // validate stuff, addError, etc...
    }
}

как я могу получить доступ ко «всем» или одному другому значению из формы, которая была отправлена?

помощь очень приветствуется

...