$modelo->test()
La función test() sirve para verificar los valores de las propiedades o columnas del modelo. Devuelve false si se detectan problemas en los valores y true en caso contrario. Por ejemplo, devolverá false si en una columna del modelo se encuentra un valor null, y en la tabla existe una restricción NOT NULL para esa columna. Para ser más claros, la función test() del modelo Cliente devolverá false si el campo cifnif
tiene valor NULL, ya que la columna cifnif
de la tabla no puede contener NULL.
¿Cuándo se ejecuta?
Esta función se ejecuta dentro de la función save() del modelo y se realiza antes de las funciones internas saveInsert() y saveUpdate().
¿Cómo se usa normalmente?
No es habitual llamar a esta función directamente. Normalmente, en nuestros modelos, cuando necesitamos realizar alguna comprobación o corrección sobre los valores, lo hacemos dentro de esta función:
public function test(): bool
{
// Comprobamos que el codpago solamente tiene letras, números y algunos caracteres especiales
if ($this->codpago && 1 !== preg_match('/^[A-Z0-9_\+\.\-\s]{1,10}$/i', $this->codpago)) {
Tools::log()->error('invalid-alphanumeric-code', [
'%value%' => $this->codpago,
'%column%' => 'codpago',
'%min%' => '1',
'%max%' => '10'
]);
return false;
}
return parent::test();
}