2012-04-17 86 views
0

我有一个symfony 1.4验证器的问题Symfony 1.4验证器

我想写我自己的验证器,但我有一个小问题。

我的错误信息是一样的,在形式的配置价值

我的代码

class sfValidatorDefaultString extends sfValidatorString{ 

    protected function configure($options = array(), $messages = array()) 
    { 
    parent::configure($options, $messages); 

    $this->addMessage('default_string', 'Error message'); 

    $this->addOption('default_string'); 
    } 
    protected function doClean($value) 
    { 
    $clean = parent::doClean($value); 

    // tutaj utknąłem 
    if(in_array($value, $this->getOptions('default_string'))) 
    { 
     throw new sfValidatorError($this, 'default_string', array('value' => $value['name'], 'default_string' => $this->getOption('default_string'))); 
    } 

    return $clean; 
    } 
} 
+1

我不明白你的问题..你能更明确吗? – j0k 2012-04-17 10:14:01

+0

'ContactForm 'name'=> new sfValidatorDefaultString(array(),array('default_string'=>'name')), ' '当用户在input'name'名称中写入时,他会发生错误:''错误信息“,但现在他将有错误:'姓名' – Micchaleq 2012-04-17 10:22:16

+0

另一个我怎样才能使用$ this-> addMessage('default_string','**错误信息**'); in throw new sfValidatorError($ this,'** here **' – Micchaleq 2012-04-17 10:59:05

回答

0

当你有一个窗体上的错误,你总是有相关的部件(这里name )和这个小部件的错误信息(这里是Error message)。

如何在模板中显示错误?使用自定义的方式或通常的方法(使用<?php echo $form ?>)?

对于addMessagesfValidatorError,当symfony抛出sfValidatorError时,第二个参数是错误代码。它会尝试找到这个错误代码的消息,你在你的配置中明确定义:

$this->addMessage('default_string', 'Error message');