首页 > 解决方案 > TYPO3 FormFactory 如何在自定义验证器中访问多个值?

问题描述

任务非常简单——我们有 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...
    }
}

我如何从提交的表单中访问“全部”或单个其他值?

非常感谢帮助

标签: typo3typo3-9.x

解决方案


推荐阅读