Обновление записи в БД Yii2

311
19 ноября 2017, 17:11

Вообщем прошу помощи уже всю голову сломал никак не могу обновить запись в бд. Вот код контроллера:

public function actionEdit($id) {
    $model = Pages::find()->where(['id' => $id])->one();
    if ($model->load(Yii::$app->request->post()) && $model->validate()) {
        $model->isNewRecord = false;
        if ($model->save()) {
            return $this->redirect(array('/admin/pages'));
        }
    }
    return $this->render('edit', compact('model'));
}

Вот код html:

<div class="row">
<?php $form = ActiveForm::begin(); ?>
    <?= $form->field($model, 'title'); ?>
    <?= $form->field($model, 'meta_keywords'); ?>
    <?= $form->field($model, 'meta_description'); ?>
    <?php echo $form->field($model, 'description')->widget(CKEditor::className(), [
        'editorOptions' => ElFinder::ckeditorOptions('elfinder',[]),
    ]);
    ?>
    <div class="form-group">
        <div>
            <?= Html::submitButton('Редактировать страницу', ['class' => 'btn btn-success']) ?>
        </div>
    </div>
<?php ActiveForm::end(); ?>

Вообщем старые данные выводятся я их изменяю жму кнопку он меня кидает на страницу как при удачном изменении, но ни каких изменений нет.

Answer 1

Вообщем я нашел ответ на свой вопрос правда он не самый элегантный, вот код вдруг пригодится:

public function actionEdit($id) {
    $model = Pages::find()->where(['id' => $id])->one();
    if ($model->load(Yii::$app->request->post()) && $model->validate()) {
        $model->title = $_POST['Pages']['title'];
        $model->meta_keywords = $_POST['Pages']['meta_keywords'];
        $model->meta_description = $_POST['Pages']['meta_description'];
        $model->description = $_POST['Pages']['description'];
        if ($model->save()) {
            return $this->redirect(array('/admin/pages'));
        }
    }
    return $this->render('edit', compact('model'));
}

Я чесно говоря хз почему yii2 все приходящие данные заворачивает еще в один массив, в моём случае это "Pages", хотя скорее всего он просто берет название модели.

READ ALSO
Высоконагруженный и большой проект на PHP

Высоконагруженный и большой проект на PHP

Я бывал на конференциях, где говорили, что Active Record штука не удобнаяПотому что не отвечает принципам SOLID, и когда проект вырастает очень сложно...

219
Генерация X-Secret-Key

Генерация X-Secret-Key

Может кто то вкурсе или ранее работал с проектом mymail

302
Php, sql проблема с кодировкой

Php, sql проблема с кодировкой

Вопрос закрытВсё решилось одной строкой:

233
PHP - aгрегация диапазонов номеров телефона

PHP - aгрегация диапазонов номеров телефона

Есть диапазон номеровПример:

222