【问题标题】:sfValidator Choice is invalid symfony 1.4sfValidator 选择无效 symfony 1.4
【发布时间】:2016-01-25 15:34:01
【问题描述】:

我正在用另一种形式的数据编写一个表单代码。我从带有“选择”的验证器那里得到一个错误,错误说:dia_semana [Invalid.] id_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)),
));
}

有人可以帮助我吗?

【问题讨论】:

    标签: php forms symfony1


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 2012-04-29
      • 2012-03-19
      • 1970-01-01
      相关资源
      最近更新 更多