Ich versuche, eine benutzerdefinierte Fehlermeldung von meiner CustomForm.class.php, dass es in app/modul/modulename/lib, aber irgendwie bekomme ich einen anderen (vielleicht die Standardeinstellung von Base ??) ... es ist wie die ursprüngliche Nachricht Fehler nicht überschrieben ...Benutzerdefinierte Fehlermeldung nicht korrekt angezeigt
BaseClientForm.class.php
abstract class BaseClientForm extends BaseFormDoctrine
{
public function setup()
{
$this->setWidgets(array(
'phonenumber' => new sfWidgetFormInputText()
));
$this->setValidators(array(
'phonenumber' => new sfValidatorString(array('max_length' => 20))
));
$this->widgetSchema->setNameFormat('client[%s]');
$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
$this->setupInheritance();
parent::setup();
}
public function getModelName()
{
return 'Client';
}
}
In ClientForm.class.php werden können:
class ClientForm extends BaseClientForm {
public function configure() {
$this->validatorSchema['phonenumber'] = new sfValidatorAnd(array(new sfValidatorString(array('min_length' => 9, 'max_length' => 9, 'required' => true),array('min_length' => 'Mínimo 9 caracteres', 'max_length' => 'Máximo 9 caracteres', 'required' => 'Obligatorio')), new sfValidatorRegex(array('pattern' => '([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])','must_match' => true))));
}
}
In meiner Vorlage:
<?php if($form['phonenumber']->hasError()): ?>
<p class="error"><?php echo $form['phonenumber']->getError()->getMessage() ?></p>
<?php endif ?>
Ergebnis:
Required
Warum es "erforderlich" nicht angezeigt, wenn ich es nur geändert habe zu "Obligatorio"? Irgendeine Lösung dafür?
Die anderen definierten Validierungen (min_length, max_length) funktionieren ordnungsgemäß? – nikoskip
Sie erscheinen so: "Minimo 9 caracteresRequired" –