yii2kartik-v

Update data in Kartik Detailview is not working


I've detail showed using Kartik Detail View. This widget has Edit inline function by clicking pencil icon button in top right side like this. enter image description here

But then the table doesn't be editable : enter image description here

And nothing happen, my data still the same, my update not success. It's possible to solve my problem? Thanks.

I have read the official guide and it looks identical: https://demos.krajee.com/detail-view

This is my view code:

<?php echo DetailView::widget([
        'model' => $modelAnagrafiche,
        'responsive' => true,
        'mode' => 'edit',
        'enableEditMode' => true,
        'buttons1' => '{update}',
        'panel' => [
            'type' => 'primary',
            'heading' => 'Contratto' . ' : ' . $modelAnagrafiche >cognome_ragione_sociale . ' ' . $modelAnagrafiche->nome
        ],
        'attributes' => [
            [
                'group'=>true,
                'label'=>'Sezione Anagrafica',
                'rowOptions'=>['class'=>'table-primary']
            ],
            [
                'columns' => [
                    [
                        'attribute' => 'cognome_ragione_sociale',
                        'displayOnly' => true,
                        'valueColOptions' => ['style' => 'width:30%']
                    ],
                    [
                        'attribute' => 'nome',
                        'format' => 'raw',
                        'valueColOptions' => ['style' => 'width:30%'],
                        'displayOnly' => true,
                        'type' => DetailView::INPUT_TEXT,
                    ],
                ],
            ],
            [
                'columns' => [
                    [
                        'attribute' => 'codice_fiscale',
                        'displayOnly' => true,
                        'valueColOptions' => ['style' => 'width:30%']
                    ],
                    [
                        'attribute' => 'partita_iva',
                        'format' => 'raw',
                        'valueColOptions' => ['style' => 'width:30%'],
                        'displayOnly' => true
                    ],
                ],
            ],
            [
                'columns' => [
                    [
                        'attribute' => 'tipo_documento',
                        'displayOnly' => true,
                        'valueColOptions' => ['style' => 'width:30%'],
                        'format' => 'raw',
                        'value' => $modelAnagrafiche->tipoDocumento,
                    ],
                    [
                        'attribute' => 'numero_documento',
                        'format' => 'raw',
                        'valueColOptions' => ['style' => 'width:30%'],
                        'displayOnly' => true
                    ],
                ],
            ],
            [
                'columns' => [
                    [
                        'attribute' => 'data_nascita',
                        'displayOnly' => true,
                        'format' => 'date',
                        'type' => DetailView::INPUT_DATE,
                        'widgetOptions' => [
                            'pluginOptions' => ['format' => 'yyyy-mm-dd']
                        ],
                    ],
                    [
                        'attribute' => 'id_provincia_nascita',
                        'displayOnly' => true,
                        'valueColOptions' => ['style' => 'width:30%'],
                        'format' => 'raw',
                        'value' => $modelAnagrafiche->provinciaNascitaNome,
                        'label' => 'Provincia Nascita'
                    ],
                ],
            ],
            [
                'columns' => [
                    [
                        'attribute' => 'id_comune_nascita',
                        'displayOnly' => true,
                        'format' => 'raw',
                        'value' => $modelAnagrafiche->comuneNascitaNome,
                        'label' => 'Comune Nascita'
                    ],
                ],
            ],
        ],
    ]);
?>

This is the action in my controller:

public function actionUpdateAnagrafica()
{
    $post = Yii::$app->request->post();

    if (empty($post['Anagrafiche']['id'])) {
        throw new NotFoundHttpException('Non esiste nessuna anagrafica.');
    }

    $modelAnagrafiche = Anagrafiche::findOne($post['Anagrafiche']['id']);

    if ($modelAnagrafiche->load($post) && $modelAnagrafiche->save()) {
        return $this->redirect(['view', 'id' => $modelAnagrafiche->id]);
    } else {
        return $this->render('update-anagrafica', [
            'modelAnagrafiche' => $modelAnagrafiche,
        ]);
    }
}

Solution

  • You have to remove all the displayOnly attributes.

    According to the official guide:

    displayOnly: boolean|Closure, if the input is to be set to as display only in edit mode. If set to true, no editable form input will be displayed, instead this will display the formatted attribute value.