如何显示下拉列表在YII1条件


How to show dropdown list in YII1 with condition?

我有两个表。一个是"用户"。

'id person type_id'
'1    X    1'
'2    y    2'
'3    z    3'

另一个是"type"

'id typename'
'1  a'
'2  b'
'3  c'

我有一个表单,我想显示一个下拉列表的人那些typename是"a"answers"b"。我的表单是…

<div class="row">
    <?php 

        echo $form->dropDownListGroup(
            $User,
            'supervisor',
            array(
                'wrapperHtmlOptions' => array(
                    'class' => 'col-sm-5',
                ),
                'widgetOptions' => array(
                    'data' => CHtml::listData(User::model()->findAll(), 'id', 'person'),
                    'htmlOptions' => array('prompt'=>'Select'),
                )
            )
        ); ?>
</div>
...
'data' => CHtml::listData(User::getDropDownListData(), 'id', 'person'),
...
class User extends CActiveRecord {
...
public static function getDropDownListData() {
    $types = Type::model()->findAllByAttributes([
        'name' => ['a', 'b'],
    ]);
    $typeIds = array_map(function($item){ return $item->id;}, $types)
    $c = new CDbCritedria();
    $c->compare('type', $typeIds);
    return self::model()->findAll($c);
}
...
}