Mysql
 sql >> Database >  >> RDS >> Mysql

CakePHP 3 - Analizza la data con LocalStringFormat per correggere il formato SQL e la validazione

L'analisi (nel processo di marshalling) e la convalida non hanno nulla a che fare l'una con l'altra, la prima avverrà dopo quest'ultimo.

Controlla la date API del metodo di convalida, richiede ulteriori argomenti, ovvero il formato da utilizzare e un'espressione regolare personalizzata da utilizzare al posto di quelli predefiniti.

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

Quindi, per convalidare correttamente i tuoi dati tedeschi localizzati, dovrai specificare il dmy formato.

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

Se desideri applicare la convalida localizzata a livello globale, in un modo in cui il formato può essere modificato da un unico punto nella tua app, puoi ad esempio utilizzare una regola di convalida personalizzata e un provider personalizzato disponibile a livello globale, che recupera il formato dalle tue app configurazione, come

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

Vedi anche Ricettario> Convalida> Regole di convalida personalizzate