Php Symfony验证器,用于后端的小部件
我使用symfony 1.4.8。我使用SfExtraFormPlugin将ReCaptcha添加到我的表单中。我在我的“公共函数配置()”Php Symfony验证器,用于后端的小部件,php,symfony1,symfony-forms,Php,Symfony1,Symfony Forms,我使用symfony 1.4.8。我使用SfExtraFormPlugin将ReCaptcha添加到我的表单中。我在我的“公共函数配置()” .... $this->widgetSchema['captcha'] = new sfWidgetFormReCaptcha(array( 'public_key' => sfConfig::get('app_recaptcha_public_key') )); $this->validatorSche
....
$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的小部件和验证程序?现在我只看到一种方法,那就是移除
parent::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')
));
...
并将所有小部件和验证程序与前端小部件和验证程序分开写入后端..:(
p、 It’很抱歉我的英语不好
p、 请提前感谢您的回答;-)在表单中添加选项。当您实例化它时,您应该知道您是在后端还是在前端
// 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
}
不建议采用这种方式。您的表单不应该知道环境。控制员的工作就是告诉他。