Yii2 select2更新值为空

时间:2017-05-12 06:32:53

标签: php jquery yii2 jquery-select2

*****解决(更新)******

我在我的表单中使用kartik select2小部件。单击更新后插入值后,该值将为空。我在网上搜索了一些解决方案,这就是我提出来的。在代码中有什么我想念或错放的地方吗?

控制器:

public function actionUpdate($id)
    {
        $request = Yii::$app->request;
        $model = $this->findModel($id);  

        if($request->isAjax)
        {
            Yii::$app->response->format = Response::FORMAT_JSON;
            if($request->isGet)
            {
                $query = OpClient::find()
                        ->where(['id'=>$model->id])
                        ->one();                

                return [
                    'title'=> "Update OpClient",
                    'content'=>$this->renderAjax('update', [
                        'model' => $model,
                        'query' => $query,

                    ]),
                   'footer'=> Html::button('Close',['class'=>'btn btn-default pull-left','data-dismiss'=>"modal"]).
                                Html::button('Save',['class'=>'btn btn-primary','type'=>"submit"])
                ];       

            }
            else if($model->load($request->post()))
            {
                $model->unit_id = json_encode(Yii::$app->request->post( 'OpClient' )['unit_id']);
                $model->save();

                return [
                    'forceReload'=>'#crud-datatable-pjax',
                    'title'=> "OpClient",
                    'content'=>'<span class="text-success">Do you want to update '.$model->op_contact->name.' Contact Billing Address?</span>',
                    'footer'=> Html::button('No',['class'=>'btn btn-default pull-left','data-dismiss'=>"modal"]).
                               // Html::button('Yes',['class'=>'btn btn-default pull-right','data-dismiss'=>"modal"])
                              Html::a('Yes',['compare','contactid'=>$model->contact_id],['class'=>'btn btn-primary'])
                ];    
            }
            else
            {
                 return [
                    'title'=> "Update OpClient ",
                    'content'=>$this->renderAjax('update', [
                        'model' => $model,
                        'query' => $query,
                    ]),
                    'footer'=> Html::button('Close',['class'=>'btn btn-default pull-left','data-dismiss'=>"modal"]).
                                Html::button('Save',['class'=>'btn btn-primary','type'=>"submit"])
                ];        
            }
        }
        else
        {
            if ($model->load($request->post()) && $model->save()) {
                return $this->redirect(['view', 'id' => $id]);
            } 
            else 
            {
                return $this->render('update', [
                    'model' => $model,

                ]);

            }

        }
    }

更新

<?php

use yii\helpers\Html;

/* @var $this yii\web\View */
/* @var $model frontend\models\OpClient */
?>
<div class="op-client-update">

    <?= $this->render('_form', [
       'model' => $model,
       'query' => $query,
    ]) ?>

</div>

形式://更新

$update = json_decode($query->unit_id);


<div class="row">
              <div class="col-md-12">'.
                                $form->field($model, 'unit_id')->widget(Select2::classname(), [

                                    'data' => $getunit,
                                    'language' => 'en',
                                    'options' => ['placeholder' => 'Select','multiple'=>true,'value'=>$update],
                                    'pluginOptions' => [
                                        'allowClear' => true,
                                        'tags'=>true,
                                        'maximumInputLength'=>10,
                                    ],
                                ]).'
                            </div>
                        </div><br>

对于$query,我确实得到了我创建的值的位置数组。但是当我尝试更新时它仍然没有显示。有什么建议?感谢

0 个答案:

没有答案