Yii的下拉列表?

时间:2016-04-13 12:55:06

标签: php yii

在我的视图页面中,

    $cpfTabledropdown = ManageConfiguration::getModulesetting();
    echo $form->dropdownList($useraccount, 'skill_type', $cpfTabledropdown, array('class' => 'form-control', 'prompt' => 'Select SKill Type', 'disabled' => $useraccount->id_type == 3 ? false : true));

在我的模型编码中:

public static function getModulesetting() {
    $models = HrmoduleSettings::model()->findAll('type="6"');
    return CHtml::listData($models, 'id', 'name');
 }

现在我希望在name concat中返回listdata使用column subcat的一些静态数据,如何在yii中返回该返回名称值中的静态数据,如下面的PHP编码,

我想在YII中显示类似于PHP编码的下拉列表数据.It Php编码其工作正常,但我不知道如何在YII中编写。可以在YII中编写以下PHP编码吗? / p>

<select name ="UserAccount[skill_type]">
  <?php
    foreach ($cpfTabledropdown as $models) {
     if ($models->subcat_type == 1) 
         {
       $cate = "Skilled";
         } 
       else {
         $cate = "Unskilled";
         }
        ?>
        <option value ="<?php echo $models->id; ?>"><?php echo $cate . " " . $models->name; ?></option>
     <?php
       }
       ?>
      </select>

2 个答案:

答案 0 :(得分:0)

使用这种方式:

public static function getModulesetting() {
   $models = HrmoduleSettings::model()->findAll('type="6"');
   return CHtml::listData($models, 'id', 
           function($models) {
             $cate = "What Ever"; // $cate content
             return $cate . ' ' . $models->name; 
   });
}

答案 1 :(得分:0)

您可以在HrmoduleSettings课程中创建一个getter,这样就可以避免在视图中添加与数据相关的代码。

HrmoduleSettings课程中添加以下方法:

public function getNameWithCategory()
{
    if ($this->subcat_type == 1)
        return "Skilled " . $this->name;
    else
        return "Unskilled " . $this->name;
}

现在您必须对CHtml::listData()电话进行一些更改:

CHtml::listData($models, 'id', 'nameWithCategory');

就是这样!