sfValidator值==字符串

时间:2012-03-06 18:09:18

标签: symfony1 validation symfony-1.4

如果值是特定字符串,我该如何检入symfony 1.4。

在我的html代码中,我输入一个默认值:

<input ... value="Recipe name.">

我目前的表格:

$recipename_value = 'Recipe name.';
$this->setWidgets(array(
        'recipename' => new sfWidgetFormInputText(array(), array('size' => '40', 'maxlength' => '150',
        'value' => $recipename_value,

$this->setValidators(array(
        'recipename' => new sfValidatorString(array('max_length' => 150), array(
        'required' => 'Please enter a recipe name.'
        )),

当值为Recipe name.时,sfValidator应该给出错误消息我如何在symfony中执行此操作?我读了很多关于max_-&amp; min_length和sfValidatorSchemaCompare,但没有字符串。有人可以帮帮我吗?

谢谢!

贡纳尔

1 个答案:

答案 0 :(得分:1)

您可以使用postValidator 在您的表单类中:

public function checkValue($validator, $values) {

  if ($values['recipename']=="Recipe name."){

     $message = 'Your message';
     throw new sfValidatorError($validator, $message);

  }
  else{
       return $values; 
       }
  }

但是,我认为真正的方法是使用占位符作为表单字段。你可以阅读它:

<强> HTML5 placeholder Attribute

IE的插件:

<强> jQuery HTML5 Placeholder Plugin