sql >> Base de Datos >  >> RDS >> Mysql

CakePHP 3 - Parse Date con LocalStringFormat para corregir el formato SQL y corregir la validación

El análisis (en el proceso de clasificación) y la validación no tienen nada que ver entre sí, el primero sucederá después este último.

Comprueba la date método de validación API, toma más argumentos, es decir, el formato a usar y una expresión regular personalizada para usar en lugar de las predefinidas.

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

Entonces, para validar correctamente sus datos alemanes localizados, deberá especificar el dmy formato.

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

Si desea aplicar la validación localizada globalmente, de manera que el formato se pueda cambiar desde un único punto en su aplicación, entonces podría, por ejemplo, usar una regla de validación personalizada y un proveedor personalizado disponible globalmente, que obtiene el formato de sus aplicaciones. configuración, como

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

Consulte también Recetario> Validación> Reglas de validación personalizadas