2017-02-18 108 views
0

我嘗試使用可編輯列設置Kartik Gridview。一列是INPUT_SELECT2yii2 Kartik:GridView中的可編輯(多選)Select2不顯示加載的數據

在查看我有以下定義:

$gridColumns = [ 
[ 
     'class'=>'kartik\grid\EditableColumn', 
     'attribute'=>'occupation_ids', 
     'value' => 'occuList', 
     'editableOptions'=>[ 
      'header'=>'Occupations', 
      'inputType'=>Editable::INPUT_SELECT2, 
      'options' => [ 
       'attribute'=>'occupations', 
       'data' => ArrayHelper::map(Occupation::find()->all(), 'id', 'description'), 
       'options' => [ 
        'multiple' => true, 
       ],      
       'pluginOptions' => [ 
        'tags' => true, 
       ], 
      ], 
      'asPopover' => false, 
     ], 
    ], 
...]; 

echo GridView::widget([ 
     'dataProvider'=>$dataProvider, 
     'columns'=>$gridColumns, 
     'filterModel' => $searchModel, 
    ]); 

保存價值的作品完美。但是,如果要加載並顯示保存的數據,我不得不欺騙一些東西來運行。 GridView擁有一個MonthlyEmployment的列表。 MonthlyEmployment有以下方法

* @property Occupation[] $occupations 
*/ 
class MonthlyEmployment extends \yii\db\ActiveRecord 
{ 
    public $occupation_ids; 

    public function getOccuList() { 
     $arr = []; 
     foreach ($this->occupations as $ocu) { 
     $arr[] = $ocu->description; 
     } 
     if ($arr != null && !empty($arr)) { 
      return implode(', ', $arr); 
     } else { 
      return ''; 
     } 
    } 

所以保存的職業顯示在gridview。但是,如果我打開模塊編輯字段的值不選擇。下面的圖片,看看我的意思。

GridView Editable Column (Multi)Select2

所以有沒有人用卡爾蒂克GridView控件,可編輯和選擇二工作的例子嗎?

回答

0

有一個沒有標籤; 這是控制器:

public function actionIndex() 
    { 
     $model = new Model; 
     $searchModel = new OrderSearch(); 
     $dataProvider = $searchModel->search(Yii::$app->request->queryParams); 

       if (isset($_POST['hasEditable'])) { 
         \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; 

         if ($model->load($_POST)) { 
          $value = $model->status; 
          return ['output'=>$value, 'message'=>'']; 
         } 
         else { 
          return ['output'=>'', 'message'=>'']; 
         } 
        } 

       return $this->render('indextoday', [ 
        'searchModel' => $searchModel, 
        'dataProvider' => $dataProvider, 
       ]); 
    } 

,這是柱:

<?php $data_from_desiredModel=ArrayHelper::map(desiredModel::find() 
->orderBy('id')->asArray()->all(), 'id', 'name');?> 

[ 
     'class'=>'kartik\grid\EditableColumn', 
     'attribute'=>'name', 
     'editableOptions'=>[ 
      'header'=>'Name', 
      'inputType'=>\kartik\editable\Editable::INPUT_SELECT2, 
      'data' => $data_from_desiredModel, 
      ], 
    ], 
相關問題