选择的值不会显示在Kartik Select2多选中

时间:2015-12-07 13:46:06

标签: yii2

这是我的观点文件:

<?php 
   $data = array();
   echo '<label class="control-label">Attribute Group Name</label>';
   echo Select2::widget([
        'name' => 'attribute_grp_name',         
        'data' => $attribute_group_name, // initial value                       
        'options' => ['placeholder' => 'Please Enter Attribute Group Name', 'multiple' => true],
            'pluginOptions' => [
                'attribute_grp_name' => true,
                'maximumInputLength' => 100,                    
            ],
        ]);
?>

在我看来,这里没有显示所选数据。

这是我的创建和更新功能控制器:

public function actionCreate()
{
    $model = new AttributeSet();        
    $attribute_group  = AttributeGroupLang::find()->select('*')->all();
    $attribute_group_name = ArrayHelper::map($attribute_group, 'id_attribute_group', 'name');        

    if ($model->load(Yii::$app->request->post()) && $model->save()) {                     
        $post_array = Yii::$app->request->post();            

        foreach ($post_array['attribute_grp_name'] as $key => $value) {                  

            $attribute_set_group_combination = new AttributeSetGroupCombination();                   
            $attribute_set_group_combination->id_attribute_set = $model->id_attribute_set;
            $attribute_set_group_combination->id_attribute_group = $value;
            $attribute_set_group_combination->save(false);
        }

        return $this->redirect(['view', 'id' => $model->id_attribute_set]);
    } else {
        return $this->render('create', [
            'model' => $model,                              
            'attribute_group_name' => $attribute_group_name,                
        ]);
    }
}

这是更新功能:

public function actionUpdate($id)
{
    $model = $this->findModel($id);                
    $attribute_set_group_combination = AttributeSetGroupCombination::find()->where(['id_attribute_set' => $id])->all();                

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        $post_array = Yii::$app->request->post();            

        if(!empty($post_array['attribute_grp_name'])){

            AttributeSetGroupCombination::deleteAll('id_attribute_set = '.$id); 
            foreach ($post_array['attribute_grp_name'] as $key => $value) {   

                $attribute_set_group_combination = new AttributeSetGroupCombination();                   
                $attribute_set_group_combination->id_attribute_set = $model->id_attribute_set;
                $attribute_set_group_combination->id_attribute_group = $value;
                $attribute_set_group_combination->save(false);
            }
        }

        return $this->redirect(['view', 'id' => $model->id_attribute_set]);
    } else {
        return $this->render('update', [
            'model' => $model,
            'attribute_set_group_combination' => $attribute_set_group_combination,
            'attribute_group_name' => $this->getExistAttrSet($id),
        ]);
    }
}

public function getExistAttrSet($id){

    $query = new Query;
    $query->select(['attribute_group_lang.name AS attribute_group_name','attribute_group_lang.id_attribute_group'])  
        ->from('attribute_set_group_combination')
        ->join('LEFT OUTER JOIN', 'attribute_set', 'attribute_set.id_attribute_set =attribute_set_group_combination.id_attribute_set')
        ->join('LEFT OUTER JOIN', 'attribute_group_lang', 'attribute_group_lang.id_attribute_group =attribute_set_group_combination.id_attribute_group')
        ->where('attribute_set.id_attribute_set='.$id)
        ->all(); 

    $command = $query->createCommand();
    $model = $command->queryAll();
    $data = array();

    foreach ($model as $attrsetlist[]) {                        
        $data = ArrayHelper::map($attrsetlist, 'id_attribute_group', 'attribute_group_name');        
    }        
    return $data;
}

任何人都可以帮助我如何在多个选择字段中显示所选值。

1 个答案:

答案 0 :(得分:0)

你只需要传入模型值:

<?php
echo kartik\select2\Select2::widget([
    'name' => 'some_field_name',
    
    // ----------------------
    'value' => 'a', 
    //'value' => ['a', 'b'],
    //'value' => $model->some_value, 
    // ----------------------
    
    
    'data' => ['a'=>'a', 'b'=>'b', 'c'=>'c'],
    'options' => ['placeholder' => 'Select menu items ...', ],
]);
?>