Проверка Terms and Conditions

Снова здрасьте.

Задача простая - проверить чекбокс.

Если отмечен - то идем на регистрацию, если нет - то выводим ошибочку.

Проверяю в модели.

во View:


<?php echo CHtml::activeCheckBox($model,'checkTerms'); ?>

в Model:

1-й способ


public $checkTerms;

......

array('checkTerms', 'CRangeValidator', 'range'=>array(1), 'message'=>'You must agree.'),

не работает.

Отмечен чекбокс или не отмечен все фиолетово никаких проблем - пропускает проверку и регистрирует.

2-й способ


public function terms($attribute, $params)

{

if ($this->checkTerms != 1) $this->addError('checkTerms', 'You must agree with the Terms and Conditions.');

}

в рулс


...

array('checkTerms','terms'),

...

Тоже не работает выдает все время сообщение - ‘You must agree with the Terms and Conditions.’

Забавно.

Анализ сгенеренного HTML кода показал - что значение всегда 1 независимо от того отмечен чекбокс или нет.

Вопрос к знатокам - это что глюк?

Если нет то подскажите позалуйста что и где у меня не правильно.

var_dump($model);

Говорит что checkTerms => NULL

Независимо от того отмечен чекбокс или нет, что очень странно.

Подозреваю что поэтому и не выполдняется валидация.

Версия фреймфорка 1.0

Есть идеи кроме - "Обновите фреймфорк и т.д."

Всем спасибо.

Извините, проблема решена.

Все на самом деле способы валидации работают, забыл добавить в контроллер


$model->checkTerms = $_POST['membersreg']['checkTerms'];

используте


$model->attributes = $_POST['modelName']

тогда все что есть в правилах - присвоится само собой