Php Symfony sfWidgetFormChoice始终对多选无效(复选框)
我对复选框验证有一个奇怪的问题。它总是无效的。。。我读了很多关于这个问题的书,但是我找不到解决办法。。。(我在验证中使用数组_键) 这是我的代码:Php Symfony sfWidgetFormChoice始终对多选无效(复选框),php,symfony1,validation,Php,Symfony1,Validation,我对复选框验证有一个奇怪的问题。它总是无效的。。。我读了很多关于这个问题的书,但是我找不到解决办法。。。(我在验证中使用数组_键) 这是我的代码: class NetworkDevicesAndInterfacesForm extends sfForm { public function configure() { $optionsArr = array('one' => 'One','two' => 'Two'); $this->
class NetworkDevicesAndInterfacesForm extends sfForm {
public function configure() {
$optionsArr = array('one' => 'One','two' => 'Two');
$this->setWidgets(array(
'devices' => new sfWidgetFormChoice(array(
'expanded' => true,
'multiple' => true,
'choices' => $optionsArr),
array('class' => 'checkbox'))
));
$this->setValidators(array(
'devices' => new sfValidatorChoice(array(
'choices' => array_keys($optionsArr)),
array('required' => 'Please choose something!'))
));
$this->widgetSchema->setLabels(array(
'devices' => ' '
));
$this->widgetSchema->setNameFormat('devices[%s]');
}
}
行动:
if ($request->isMethod('post')) {
$this->form->bind($request->getParameter('devices'));
if ($this->form->isValid()) {
$formValues = $this->form->getValues();
$deviceId = $formValues['devices'];
}
}
在小部件选项中指定“多个”时,您应该对相应的验证器执行相同的操作:
$this->setValidators(array(
'devices' => new sfValidatorChoice(array(
'choices' => array_keys($optionsArr),
'multiple' => true
),
array('required' => 'Please choose something!'))
));
这真的帮助了我。谢谢