更新表单值不起作用yii2

时间:2019-06-26 08:48:35

标签: php mysql yii2

我有由crud生成的默认表格。我需要更新消息列。

我的查看站点/index.php

<div class="notifications-events-index">

<?= Html::encode($this->title) ?>



<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'summary' => false,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        'date_at',
        'type',
        'event_id',
        [
            'attribute' => 'Message',
            'filter' => true,
            'format' => 'raw',

            'value' => function ($model) {
                $form = ActiveForm::begin([
                    'action' => Yii::$app->urlManager->createUrl(['site/update', 'id' => $model->id])
                ]);
                return $this->render('_msg', [
                    'model' => $model,
                    'form' => $form,
                ]);
            },
        ]
    ],
]); ?>
<?php ActiveForm::end(); ?>

我在SiteController中的updateAction

public function actionUpdate($id)
{
    $model = $this->findModel($id);

    $dataProvider = new ActiveDataProvider([
        'query' => NotificationsEvents::find()->orderBy('date_at'),
    ]);

    if ($model->load(Yii::$app->request->post())) {
        $model->save(false);
        return $this->redirect(['index']);
    }

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

findModel正在工作。保存更新值时,它们不会更新。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不更新记录的可能原因:

  1. 检查验证,可能会有一些验证正在应用。
  2. 在模型的安全中检查可用的属性。
  3. 调试POST数据。您的帖子数据可能没有被发布。

如果仍然无法解决问题,请同时发布模型。