YiiBooster Select2Row数据/标签问题

时间:2013-07-31 18:55:45

标签: php yii

所以我一直试图让select2Row永远为我工作,我似乎无法得到它。我正在尝试做的是为用户提供列出学校/大学名称的标签,同时在保存表单时存储所述标签的值。我注意到我不能同时使用数据和标签,否则我的下拉不会填充,所以这不是一个选项。标签似乎只需要文本,而不是文本和匹配值。有什么想法吗?

<div class="row">
    <?php 
        echo $form->select2Row($model, 'school_id', array(
            'asDropDownList'=>false,
            'options'=>array(
                'tags'=>School::model()->schoolNames,
                //'maximumSelectionSize'=>1,
                'width'=>'297px',
                'tokenSeparators'=>array(','),
            ),
        )); 
    ?>
    <?php echo $form->error($model,'school_id'); ?>
</div>

这是schoolNames的功能

public function getSchoolNames()
{
    $schools = array();
    $result = $this->findAllBySQL("SELECT DISTINCT name FROM School");

    foreach($result as $school){
        $schools[] = $school->name;
    }   
    return $schools;
}

我尝试过使用它,但标签不会填充

public function getSchools()
{
    $query = "SELECT id,name FROM School";
    $results = $this->findAllBySQL($query);

    return CHtml::listData($results, 'id', 'name');
}

所以目前,select2Row正在使用getSchoolNames()生成一个标签列表并且一切正常,除非您使用这些标签提交表单,否则您将获得此标签 Please fix the following input errors: School must be an integer.

抱歉所有的麻烦,我还是有点新鲜。我确定答案可能就在我面前。谢谢,无论哪种方式=)

1 个答案:

答案 0 :(得分:0)

试试这个:

echo $form1->select2Row($model, 'school_id', array(
   'data' => School::model()->schoolNames,
   'multiple' => 'multiple',
   'options' => array(
       "width" => '70%',
   ),
));