CakePHP 3 - Datum mit LocalStringFormat analysieren, um das SQL-Format und die korrekte Validierung zu korrigieren

Wir haben die folgenden Zeilen in der Initialisierungsfunktion unseres AppControllers so deklariert, dass sie global dasselbe Format für die Anzeige von Datumsangaben haben:

    // default time formats on load
    Time::$defaultLocale = 'de-DE';
    Time::setToStringFormat('dd.MM.YYYY');

Dies hat gut funktioniert. Das Datum wird in der Ansicht korrekt angezeigt. Es wird jedoch ein Überprüfungsfehler angezeigt, wenn die Entität mit dem Datumsfeld gespeichert werden soll (der angegebene Wert ist ungültig). Der Validator ist wie folgt konfiguriert:

    $validator
        ->add('datefield', 'valid', ['rule' => 'date'])
        ->allowEmpty('datefield');

Hier ein Debug der Entität mit dem Datumsfeld:

Vor PatchEntity:

'datefield' => '08.07.2014'

Nach PatchEntity:

'datefield' => object(Cake\I18n\Time) {

        'time' => '2014-07-08T00:00:00+0000',
        'timezone' => 'UTC',
        'fixedNowTime' => false

    },
....
'[errors]' => [
        'datefield' => [
            'valid' => 'The provided value is invalid'
        ]
    ],

Ist es eine Möglichkeit, das Datum immer global im richtigen Format zu analysieren, um die Entität und Validierung zu speichern.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage