2015-10-26 7 views
1

Я пишу код формы с данными другой формы. Я получаю ошибку от валидаторов с «выбором», erros говорит: dia_semana [Invalid.] id_programa [Invalid.], но я не знаю, как это решить. Это мой код:sfValidator Choice is invalid symfony 1.4

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)), 
)); 
} 

Кто-то может мне помочь?

ответ

0

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)), 
    )); 

}