簡體   English   中英

Symfony驗證器,后端小部件

[英]Symfony validators, widgets for backend

我使用symfony 1.4.8。 我使用SfExtraFormPlugin將ReCaptcha添加到我的表單中。 我在“public function configure()”中有它的widget和驗證器

....     
$this->widgetSchema['captcha'] = new sfWidgetFormReCaptcha(array(
      'public_key' => sfConfig::get('app_recaptcha_public_key')
    ));


$this->validatorSchema['captcha'] = new sfValidatorReCaptcha(array(
      'private_key' => sfConfig::get('app_recaptcha_private_key')
    ));
...

我也有后端應用程序,我的“公共功能configure()”為它:

 public function configure()
  {
    parent::configure();
....
}

因此,當我想從后端添加帖子時出現錯誤: 由於某些錯誤,該項目尚未保存。 有沒有辦法只將ReCaptcha的小部件和驗證器刪除到我的后端? 現在我只看到一種方式,就是刪除

父::配置();

並將所有小部件和驗證器分別從前端小部件和驗證器寫入后端.. :( ps抱歉,我的英文不好pps,請提前感謝您的答案;-)

在表單中添加一個選項。 當你實例化它時,你應該知道你是在后端還是在前端。

// in your actions.class.php
$this->form = new MyForm(null, array('from_backend' => true)); // or false...

// in your form
if (!$this->getOption('from_backend'))
{
  // add the recaptcha widget and validator...
}

它應該工作:)

我發現第二種方式:

if ( sfConfig::get('sf_app') == "frontend" )
{
   widget and validator
}
elseif ( sfConfig::get('sf_app') == "backend" )
{
   widget and validator
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM