Построитель форм. Тип listbox.

Привет всем.

Как пользоваться полями типа listbox? ума не приложу что туда писать… какие поля? как называть? было б неплохо пример, если не сложно.

Таблица Users


CREATE TABLE `users` (

  `login` varchar(80) NOT NULL,

  `password` varchar(32) default NULL,

  `status` set('activated','not_activated','banned') NOT NULL,

  `name` varchar(80) default NULL,

  `surname` varchar(80) default NULL,

  `email` varchar(45) NOT NULL,

  `gender` set('man','wooman') NOT NULL,

  `created` datetime NOT NULL,

  `birthday` datetime default NULL,

  `logged` datetime default NULL,

  `image_filename` varchar(80) NOT NULL,

  PRIMARY KEY  (`login`,`image_filename`),

  KEY `login_password_KEY` (`password`,`login`),

  KEY `users_images` (`image_filename`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Кусок модели User




 const STATUS_ACTIVE = 'activated';

    const STATUS_GUEST  = 'not_activated';

    const STATUS_BANNED = 'banned';


    .......


    public function getStatusOptions(){

        return array(

            self::STATUS_ACTIVE => 'Активный',

            self::STATUS_GUEST => 'Не активный',

            self::STATUS_BANNED => 'Заблокированный',

        );

    }

    

    public function getStatusText()

    {

        $options=$this->statusOptions;

        return isset($options[$this->status]) ? $options[$this->status] : "неизвестный ({$this->status})";

    }

 



Кусок конфига построителя




return array(

    'title'=>'Обновление профиля',

 

    'elements'=>array(

        'status'=>array(

            'type'=>'listbox',

            'attribute'=>'status',

            //'data'=>User::model()->statusOptions,

        ),

        'login'=>array(

            'type'=>'text',

            'maxlength'=>32,

        ),

        .....

 

Что надо писать в конфиг построителя, что бы поле status выводились значения из User::model()->statusOptions с выбранными соответствующими?

наверное в аттрибуте модели должно быть соответствующее значение, а в построители форм:


array(

 'type'=>'dropdownlist',

 'items'=>User::model()->statusOptions,

),

:rolleyes:

PS: почему бы в качестве статуса не исопльзовать tinyint(1), соответственно значения статуса были бы немного другие

PPS: по поводу того, что вы не знаете что где смотреть - посмотрите для начала код CFormInputElement.php