Проблемы с проверкой пустого поля даты с помощью extbase - PullRequest
1 голос
/ 27 марта 2019

Почему Extbase генерирует исключение, если мое поле даты начала пусто.Если дата имеет неправильный формат, проверка работает.Но пустое значение показывает это:

Uncaught TYPO3 Exception ... Events :: setEnd () должен быть экземпляром DateTime, с нулевым значением ...

Чтоневерно со следующим кодом в моей модели?

    /**
     * start
     *
     * @var \DateTime
     * @validate NotEmpty
     * @validate(type="DateTime", options={"locale"="de_DE"})
     */
    protected $start;

А вот мой TCA

    'start' => [
        'exclude' => false,
        'label' => 'Start',
        'config' => [
            'type' => 'input',
            'renderType' => 'inputDateTime',
            'size' => 10,
            'eval' => 'datetime',
            'default' => time()
        ],
    ],

Кэш очищен, папка typo3temp удалена.

ОБНОВЛЕНИЕ:
Возможно, ошибка в моей initializeUpdateAction (), где я должен установить формат даты?

    public function initializeUpdateAction() {

        $user = $this->request->getArgument('feUsers');
        $events = $user['events'];
        if( is_array($events) ) {
            foreach ($events as $i => $event) {
                $this->arguments->getArgument('feUsers')
                    ->getPropertyMappingConfiguration()->forProperty('events.'.$i.'.start')
                    ->setTypeConverterOption(
                        'TYPO3\\CMS\\Extbase\\Property\\TypeConverter\\DateTimeConverter',
                        \TYPO3\CMS\Extbase\Property\TypeConverter\DateTimeConverter::CONFIGURATION_DATE_FORMAT,
                        'd.m.Y'
                    );
            }
        }

    }

1 Ответ

0 голосов
/ 27 марта 2019

улучшить вашу проверку:

 'eval' => 'datetime,int',

пустое поле даты представлено 0, что не является допустимым форматом даты.

...