2013-11-10 4 views
1

Я хочу, чтобы требовать от всех флажков в набореsymfony1 несколько флажков требуют все

Мой код выглядит следующим образом:

 $this->widgetSchema['consent_confirmation'] = new sfWidgetFormSelectCheckbox(
     array(
      'choices' => Doctrine_Core::getTable('MyTable')->getOptions(), 
     ) 
    ); 

UPDATE:

Моя проверка выглядит следующим образом:

$this->validatorSchema['consent_confirmation'] = new sfValidatorChoice(array(
    'choices' => array(Doctrine_Core::getTable('MyTable')->getOptions()), 
    'multiple' => true, 
    'required' => true 
)); 

Как я могу сделать это вернуть «Обязательный», если не все они проверены, и действительны, если они все с hecked?

+0

Вы добавили какие-либо правила в 'validationSchema' для флажка? если вы это сделаете, вы можете опубликовать его? –

+0

См. Обновление в сообщении для проверкиSchema – user2306941

ответ

1

My symfony 1. * память очень туманна на данный момент, но я думаю, что вам нужно сделать это, добавив правило в validatorSchema, чтобы обработать валидацию этого виджета.

Согласно Validation Appendix валидатор вам нужно sfValidatorChoice.

Этот виджет имеет несколько вариантов, в том числе:

  • кратному
  • мин
  • макс

Если предположить, что у вас есть два варианта, как описано выше, и вы хотите обеспечить ыбор и, я предполагаю, что вам может понадобиться добавить следующее configure() метод вашей формы:

public function configure() 
{ 
    $this->widgetSchema['consent_confirmation'] = new sfWidgetFormSelectCheckbox(array(
     'choices' => array(
      '1' => 'Yes I agree to #1', 
      '2' => 'Yes I agree to #2',    
     )), 
    ); 

    $this->validatorSchema['consent_confirmation'] = new sfValidatorChoice(array(
     'multiple' => true, 
     'min'  => 2, 
     'max'  => 2, 
    )); 
} 

Что-то в этом роде - я не уверен в назначении validatorSchema, если честно, может быть что-то вроде addValidator() или setValidator(). EDIT: Я думаю, что были добавлены некоторые вспомогательные методы, но некоторые из них могут быть конкретными 1.4. Выше назначение должно работать так или иначе ...

Надеется, что это помогает :)

+0

См. Мое обновление. Я попытался добавить это, но он дает мне «Invalid», если проверено более одного, даже если все они отмечены. – user2306941

+0

Хмм ... Трудно посоветовать это по памяти. Неверно очень загадочно, не так ли? Произошла ли такая же ошибка, если вы удалите «выбор» из валидатора? –

+0

Когда я добавил min и max, он сработал. Большое спасибо!! – user2306941