2011-07-26 112 views
0

我在symfony/doctrine的自定义验证中挣扎。我进行了三次小部件: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

$this->setValidators['field']是错误的,你想$this->validatorSchema['field'] = new WhateverValidator()