dougou7782 2015-10-26 13:48
浏览 52

sfValidator Choice是无效的symfony 1.4

i'm writing an form code with datas of another form. I'm getting an error from the validators with "choices", the erros says: dia_semana [Invalid.] id_programa [Invalid.] but i don't know how to solve this. This is my code:

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

Someone can help me?

  • 写回答

1条回答 默认 最新

  • dongya1875 2015-10-27 11:52
    关注

    sfValidatorChoice uses only values of array as valid values, so instead of ['key' => 'value'] pairs you have to provide only ['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)),
        ));
    
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示