symfony / doctrine自定义验证

时间:2011-07-26 03:35:04

标签: doctrine symfony-1.4

我正在努力解决symfony / doctrine中的自定义验证问题。我做了三个小工具:

  • sfWidgetFormDateTimeAmPm,
  • sfWidgetFormDateAmPm和
  • sfWidgetFormTimeAmPm 将am / pm添加到标准的24小时日期/时间格式。

类似我创建了三个验证器类:

  • sfValidatorDateTimeAmPm,
  • sfValidatorDateAmPm和
  • sfValidatorTimeAmPm。

我将这些课程添加到我的学说基础课程中:

类EventForm扩展了BaseEventForm {

 public function configure(){
    parent::configure();
    /* custom widget */
    $this->widgetSchema['start_date']            = new sfWidgetFormDateTimeAmPm();
    $this->widgetSchema['end_date']              = new sfWidgetFormDateTimeAmPm();
    $this->widgetSchema['repeat_end_after_date'] = new sfWidgetFormDateTimeAmPm();
    $this->widgetSchema['created_at']            = new sfWidgetFormDateTimeAmPm();
    $this->widgetSchema['updated_at']            = new sfWidgetFormDateTimeAmPm();

    $this->setValidators['start_date']            = new sfValidatorDateTimeAmPm();
    $this->setValidators['end_date']              = new sfValidatorDateTimeAmPm();
    $this->setValidators['repeat_end_after_date'] = new sfValidatorDateTimeAmPm(array('required' => false));
    $this->setValidators['created_at']            = new sfValidatorDateTimeAmPm();
    $this->setValidators['updated_at']            = new sfValidatorDateTimeAmPm();

    $this->validatorSchema->setPostValidator(
        new sfValidatorDoctrineUnique(array('model' => 'Event', 'column' => array('id')))
    );
    $this->widgetSchema->setNameFormat('event[%s]');
    $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);

......但它不起作用。有人可以建议我吗我不知道它做错了什么或我忘了做什么。

由于 安德烈亚斯

1 个答案:

答案 0 :(得分:1)

$this->setValidators['field']错误,您需要$this->validatorSchema['field'] = new WhateverValidator()