Php sfValidator选择无效symfony 1.4

Php sfValidator选择无效symfony 1.4,php,forms,symfony1,Php,Forms,Symfony1,我正在用另一个表单的数据编写表单代码。我从带有“选项”的验证器那里得到了一个错误,错误显示:dia_semana[Invalid.]id\u programa[Invalid.]但我不知道如何解决这个问题。 这是我的代码: public function configure() { $this->setWidgets(array( $this->validatorSchema->setOption('allow_extra_fields', true)

我正在用另一个表单的数据编写表单代码。我从带有“选项”的验证器那里得到了一个错误,错误显示:
dia_semana[Invalid.]id\u programa[Invalid.]
但我不知道如何解决这个问题。 这是我的代码:

public function configure()
{        
$this->setWidgets(array(    

$this->validatorSchema->setOption('allow_extra_fields', true);
$this->validatorSchema->setOption('filter_extra_fields', true); 

$this->setWidgets(array(
        'dia_semana'    => new sfWidgetFormChoice(array('label' => 'Data da Semana','choices' => array("" => "", "segunda" => "Segunda-Feira","terca" => "Terca-Feira"))),

  'id_programa'   => new sfWidgetFormChoice(array('label' => 'Programa',
                                                        'choices' => Doctrine_Core::getTable('tbprogramas_tv')->getProgramas())), 
));
$this->setValidators(array(
        'dia_semana'    => new sfValidatorChoice(array(
'choices' => array("" => "","segunda" => "Segunda-Feira", "terca" => "Terca-Feira"), 'required' => false)),
 'id_programa'   =>  new sfValidatorChoice(array(
            'choices' => array_keys(Doctrine_Core::getTable('tbprogramas_tv')->getProgramas()), 
'required' => false)),
));
}

有人能帮我吗

sfValidatorChoice
仅使用数组的值作为有效值,因此您必须仅提供
['key'=>'value']
对,而不是
['key']

public function configure()
{        
    $this->setWidgets(array(    

    $this->validatorSchema->setOption('allow_extra_fields', true);
    $this->validatorSchema->setOption('filter_extra_fields', true); 

    $dias = array("" => "", "segunda" => "Segunda-Feira","terca" => "Terca-Feira");
    $programas = Doctrine_Core::getTable('tbprogramas_tv')->getProgramas();

    $this->setWidgets(array(
            'dia_semana'    => new sfWidgetFormChoice(array('label' => 'Data da Semana','choices' => $dias)),

      'id_programa'   => new sfWidgetFormChoice(array('label' => 'Programa',
                                                            'choices' => $programas)), 
    ));
    $this->setValidators(array(
            'dia_semana'    => new sfValidatorChoice(array(
    'choices' => array_keys($dias), 'required' => false)),
     'id_programa'   =>  new sfValidatorChoice(array(
                'choices' => array_keys($programas)), 
    'required' => false)),
    ));

}

sfValidatorChoice
仅使用数组的值作为有效值,因此您必须仅提供
['key'=>'value']
对,而不是
['key']

public function configure()
{        
    $this->setWidgets(array(    

    $this->validatorSchema->setOption('allow_extra_fields', true);
    $this->validatorSchema->setOption('filter_extra_fields', true); 

    $dias = array("" => "", "segunda" => "Segunda-Feira","terca" => "Terca-Feira");
    $programas = Doctrine_Core::getTable('tbprogramas_tv')->getProgramas();

    $this->setWidgets(array(
            'dia_semana'    => new sfWidgetFormChoice(array('label' => 'Data da Semana','choices' => $dias)),

      'id_programa'   => new sfWidgetFormChoice(array('label' => 'Programa',
                                                            'choices' => $programas)), 
    ));
    $this->setValidators(array(
            'dia_semana'    => new sfValidatorChoice(array(
    'choices' => array_keys($dias), 'required' => false)),
     'id_programa'   =>  new sfValidatorChoice(array(
                'choices' => array_keys($programas)), 
    'required' => false)),
    ));

}