*****解决(更新)******
我在我的表单中使用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
,我确实得到了我创建的值的位置数组。但是当我尝试更新时它仍然没有显示。有什么建议?感谢