Mysql
 sql >> Datenbank >  >> RDS >> Mysql

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

Parsing (im Marshalling-Prozess) und Validierung haben nichts miteinander zu tun, ersteres wird nach passieren letzteres.

Überprüfen Sie das date Validierungsmethode API benötigt es weitere Argumente, d. h. das zu verwendende Format und einen benutzerdefinierten regulären Ausdruck, der anstelle der vordefinierten verwendet werden soll.

API> \Cake\Validation\Validation::Datum()

Um also Ihre lokalisierten deutschen Daten richtig zu validieren, müssen Sie den dmy angeben formatieren.

->add('datefield', 'valid', ['rule' => ['date', 'dmy']])

Wenn Sie die lokalisierte Validierung global anwenden möchten, sodass das Format an einem einzigen Punkt in Ihrer App geändert werden kann, können Sie beispielsweise eine benutzerdefinierte Validierungsregel und einen global verfügbaren benutzerdefinierten Anbieter verwenden, der das Format aus Ihren Apps abruft Konfiguration, wie

namespace App\Validation;

use Cake\Core\Configure;
use Cake\Validation\Validation;

class AppValidation
{
    public static function date($check) {
        return Validation::date($check, Configure::read('Locale.validation.dateFormat'));
    }
}
$validator->provider('appValidation', 'App\Validation\AppValidation');

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

Siehe auch Kochbuch> Validierung> Benutzerdefinierte Validierungsregeln