我正在用另一个表单的数据编写一个表单代码。我从带有"选择"的验证器那里收到一个错误,erros 说: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)),
));
}
有人可以帮助我吗?
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)),
));
}