繁体   English   中英

如何在Symfony中使用sfValidatorEmail验证器来验证单个电子邮件字段

[英]How can I use the sfValidatorEmail validator in Symfony to validate a single email field

我有一个包含2个元素的表单,将被提交,然后更新用户个人资料的一部分。

我不想使用整个生成的表单,并且必须删除除我需要的两个字段以外的所有字段。 我只希望能够创建一个非常简单的表单来进行更新。

有没有一种方法可以在对电子邮件字段的返回值执行的操作中利用Symfony的sfValidatorEmail?

由于正则表达式已经在验证器中编写,因此我想重用它,但是在提交非符号形式之后,我不知道如何在操作中使用它。

这里有两种方法-无论如何,您都可以构造一个简单的表单,该表单从sfForm / sfFormSymfony (不必基于ORM)扩展,仅包含您想要的2个字段。 这样,您可以使用现有的验证框架,然后在对所有内容进行验证以获取用于配置文件更新的值之后,使用$myForm->getValues()

另外,如前所述,您可以在操作中使用sfValidatorEmail类,如下所示:

$dirtyValue = "broken.email.address"
$v = new sfValidatorEmail();
try
{
  $v->clean($dirtyValue);
}
catch (sfValidatorError $e)
{
  // Validation failed
}

如果您有许多需要清除的值,则后一种方法会很快导致代码混乱,并且值得将逻辑放回以常规方式处理的形式。

如果您要提交包含2个元素的表单,则该表单应为编辑和更新结束期间的表单。 Symfony表单是轻量级的,没有性能上的理由不使用它们。 而是为此目的定制表格:

class ProfileUpdateForm extends ProfileForm
{
  public function configure()
  {
    $this->useFields(array('email', 'other_field'));
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM