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

时间:2015-07-14 07:54:54

标签: php yii

我有两张桌子。一个是"用户"。在用户表...

'id person type_id'

'1    X    1'

'2    y    2'

'3    z    3'

另一个是"输入"。

'id typename'

'1  a'

'2  b'

'3  c'

我有一个表格,我想要显示一个人的下拉列表,这些姓名是" a"和" 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>

1 个答案:

答案 0 :(得分:1)

...
'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);
}
...
}