Validator personalizzare messaggio

$name = new Zend_Validate; 
$name->addValidator(new Zend_Validate_Regex (array('pattern' => 
"/^[\w+\sa-zA-Z.'][^0-9]+$/"))) 
->addValidator(new Zend_Validate_StringLength(array('min' => 3,'max' => 25, 'encoding' => 'UTF-8')))
->addValidator(new Zend_Validate(array('allowWhiteSpace' => true, 'required' => true,'messages'=>'non valido')));
if ($name->isValid($nome))
{......}
else 
{
foreach ($name->getMessages() as $message) 
{
$errore = "$message\n";
$errorenome = '<span style="color:red">'.$errore.'</span>';
$_SESSION['name_errore'] = $errorenome; 
}
}

Come posso personalizzare messaggio

inviato 5 anni fa
lucavalentino
X 0 X

Esattamente cosa ti serve? La traduzione o una modifica tua?

Qui la documentazione ufficiale:

http://framework.zend.com/manual/en/zend.validate.messages.html

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Dovrei personalizzare il messaggio con cio che io voglio

risposto 5 anni fa
lucavalentino
X 0 X

Credo che in questo caso tu faccia prima a creare un oggetto figlio del validator di interesse. Altrimenti puoi usare il metodo setMessage, come dalla documentazione fornita.

Ciao

risposto 5 anni fa
Mario Santagiuliana
X 0 X

ma vuoi far tornare un messaggio di errore unico o differente a seconda dell'errore?

risposto 5 anni fa
civre
X 0 X

differente a seconda dell'errore

risposto 5 anni fa
lucavalentino
X 0 X

Allora devi usare setMessage o creare un oggetto figlio.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

quoto MarioS.

per esempio per Zend_Validate_Regex sono previsti i seguenti messaggi di errore:

self::INVALID => "Invalid type given, value should be string, integer or float"

self::NOT_MATCH => "'%value%' does not match against pattern '%pattern%'"

self::ERROROUS => "There was an internal error while using the pattern '%pattern%'"

quindi per personalizzare per esempio il primo

$validator->setMessage(
  'Non valido',
  Zend_Validate_Regex::INVALID
);

Altrimenti altra soluzione potrebbe essere usare Zend_Translate, imho ne vale la pena se vuoi

generalizzarlo a tutto il progetto

risposto 5 anni fa
civre
X 0 X

Altrimenti altra soluzione potrebbe essere usare Zend_Translate, imho ne vale la pena se vuoi

generalizzarlo a tutto il progetto

E se solo per avere la traduzione la traduzione fornita con zend framework fa risparmiare un sacco di tempo!!! :-)

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda