Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

CakePHP 3 - Parse Date com LocalStringFormat para corrigir o formato SQL e a validação correta


A análise (no processo de empacotamento) e a validação não têm nada a ver uma com a outra, a primeira acontecerá depois o último.

Verifique a date API do método de validação, leva mais argumentos, ou seja, o formato a ser usado e uma expressão regular personalizada a ser usada em vez das predefinidas.

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

Portanto, para validar adequadamente seus dados alemães localizados, você terá que especificar o dmy formato.
->add('datefield', 'valid', ['rule' => ['date', 'dmy']])

Se você deseja aplicar a validação localizada globalmente, de forma que o formato possa ser alterado a partir de um único ponto em seu aplicativo, você pode, por exemplo, usar uma regra de validação personalizada e um provedor personalizado disponível globalmente, que busca o formato de seus aplicativos configuração, 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 também Livro de receitas> Validação> Regras de validação personalizadas