0

我使用 symfony 1.4.8 。我使用 SfExtraFormPlugin 将 ReCaptcha 添加到我的表单中。我的 “公共功能配置()”中有小部件和验证器

....     
$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')
    ));
...

我也有后端应用程序,以及我的“公共功能配置()”

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

因此,当我想从后端添加帖子时,出现错误:由于某些错误,该项目尚未保存。 有没有办法仅将 ReCaptcha 的小部件和验证器删除到我的后端?现在我只看到一种方法,就是删除

父::配置();

并将所有小部件和验证器与前端小部件和验证器分开写入后端.. :( ps 对不起我的英语不好 pps 提前谢谢你的回答;-)

4

2 回答 2

2

在表单中添加一个选项。当你实例化它时,你应该知道你是在后端还是前端。

// 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...
}

它应该工作:)

于 2011-03-02T14:48:06.607 回答
0

我找到第二种方法:

if ( sfConfig::get('sf_app') == "frontend" )
{
   widget and validator
}
elseif ( sfConfig::get('sf_app') == "backend" )
{
   widget and validator
}
于 2011-03-02T16:43:19.093 回答