Mysql
 sql >> Base de données >  >> RDS >> Mysql

CakePHP 3 - Analyser la date avec LocalStringFormat pour corriger le format SQL et corriger la validation

L'analyse (dans le processus de marshalling) et la validation n'ont rien à voir, la première aura lieu après ce dernier.

Vérifiez la date API de méthode de validation, il prend des arguments supplémentaires, c'est-à-dire le format à utiliser et une expression régulière personnalisée à utiliser à la place de celles prédéfinies.

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

Ainsi, afin de valider correctement vos données allemandes localisées, vous devrez spécifier le dmy formater.

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

Si vous souhaitez appliquer une validation localisée à l'échelle mondiale, de manière à ce que le format puisse être modifié à partir d'un seul point dans votre application, vous pouvez par exemple utiliser une règle de validation personnalisée et un fournisseur personnalisé disponible dans le monde entier, qui récupère le format à partir de vos applications. configuration, comme

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'
])

Voir aussi Livre de recettes> Validation> Règles de validation personnalisées