簡體   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