我使用symfony 1.4.8。我使用SfExtraFormPlugin将ReCaptcha添加到我的表单中。我在“public function configure()”
中有小部件和验证器....
$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的小部件和验证器删除到我的后端?现在我只看到一种方法,就是删除
父::配置();
并将所有小部件和验证器分别从前端小部件和验证器写入后端.. :( 对不起,我的英语不好 p.p.s提前感谢您的回答; - )
答案 0 :(得分: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...
}
它应该工作:)
答案 1 :(得分:0)
我找到第二种方式:
if ( sfConfig::get('sf_app') == "frontend" )
{
widget and validator
}
elseif ( sfConfig::get('sf_app') == "backend" )
{
widget and validator
}