валидация checkbox

значение checkbox value="true" , "on", "yes", "1" и т.д.

это значение передается только когда статус checked.

как корректно определить правила валидации, типа

если есть "true", отсутствует "false", "on"->"off" и т.д. ?

Задачей валидации здесь вообще и не пахнет.

Если уж так нужен подобный функционал, то можно определить свойство $checkbox в модели и написать метод getCheckBoxStatus() в той же модели. Метод нужно реализовать таким образом, что он будет возвращать заданные в нем значения в зависимости от состояния свойства. Напрямую к методу обращаться не обязательно, архитектура Yii построена так, что будет работать конструкция $status=$model->checkBoxStatus

P.S. Могу написать пример кода модели, но думаю, что стоит вообще пересмотреть этот злосчастный checkbox, потому что скорее всего такой функционал для него был бы "оверкодингом" и задача в контексте которой используется этот элемент управления на самом деле решается проще.

Пишите валидацию отдельной функцией

проблема с checkbox в том что если он checked,

то форма посылает значение value. в противном

случае checkbox игнорируется в меттоде POST.

т.е. что бы донести снятый флажек до базы, надо

отавливать это программно.

но в функции модели rules встречал такую

конструкцию:

[tt]array('is_active','in','range'=>array('on','off'))[/tt]

тема правил документирована слабо. вот и затаилась

надежда , что может быть можно как нить прописать

правило.

ну а пока делаю программно.

Позволю себе повториться, валидацией вы эту проблему не решите.

Вот реализвация предложенного мной варианта.



class Model extends CActiveRecord


{


    function getCheckBoxStatus()


    {


        return isset($this->checkbox); //checkbox это то поле которое вас интересует


    }


}


Все, теперь вне зависимости от того что передается в $_POST, вызов $model->checkBoxStatus даст вам то что нужно.

P.S. Хотя на мой взгляд тут вообще никакой проблемы не существует. Если задача обстоит именно таким образом, то пусть база пишет автоматически значение по умолчанию для этого поля, если checkbox не отмечен.

Quote

P.S. Хотя на мой взгляд тут вообще никакой проблемы не существует. Если задача обстоит именно таким образом, то пусть база пишет автоматически значение по умолчанию для этого поля, если checkbox не отмечен.

в том то и дело что база пишет, но только на insert.

а ежели надо апдейтить? воопчим пока делаю так:

http://www.yiiframew…39.html#msg6539

А что реализация метода getCheckBoxStatus() в модели не вариант? А в базу при вставках и обновлениях можно будет писать $model->checkBoxStatus, который и будет true или false, если нужно то можно и так (int) $model->checkBoxStatus

Quote

А что реализация метода getCheckBoxStatus() в модели не вариант?

вариант и довольно изящный, но на форме 4 checkbox(a), + надо "парсить"

и другие поля (htmlspecialchars()).  в моем случае все собрано в 1-у кучу

и работает для экшанов "add" и "edit", т.е. при myModel->save();