Как обновить значение в БД по клику?

Добрый вечер. Сразу прошу прощения - я большой неспециалист в Yii2 и в php в общем, приведенный ниже код не хочет оскорбить ничьи чувства.

Я формирую таблицу из бд:
/.../
        <?php foreach ($bids as $bid): ?>
            <tr>
                <th><?= $bid['id'] ?></th>
                <th><?= $bid['name'] ?></th>
                <th><?= $bid['phone'] ?></th>
                <th><?= $bid['target'] ?></th>
                <th><?= $bid['email'] ?></th>
                <th><?= $bid['message'] ?></th>
                <?php $row = $bids_model::find()->where(['id' => $bid['id']])->one(); ?>
                <th>
                    <?php $form = ActiveForm::begin();  ?>
                    <?=$form->field($row, 'name')->input('text')->label(false) ?>
                    <?= \yii\helpers\Html::submitButton('Отправить', ['class' => 'btn-p']) ?>
                    <?php ActiveForm::end(); ?>
                </th>
            </tr>
        <?php endforeach; ?>
/.../


Т.е. я пытаюсь сделать так, чтобы одно поле таблицы могло изменять значение, хранимое в БД, столбца "name" в текущей строке.
Приведенный выше код закономерно не работает. пытался подглядеть в GII CRUD-генераторе, но там не совсем то, что мне нужно.

Экшн:

public function actionIndex(){
        $bids_model = new FooterFeedbackForm();
        $bids = $bids_model::find()->indexBy('id')->asArray()->all();
        $bids_model->update(0, ['message']);
        return $this->render('index', compact(['bids', 'bids_model']));
    }


tH2tygMa8Ro.jpg

Графическое изображение таблицы
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
webinar
@webinar
Учим yii2: https://youtu.be/-WRMlGHLgRg
боюсь много надо менять. как минимум update() срабатывает для существующих записей, а Вы создаете новый объект
$bids_model = new FooterFeedbackForm();
поэтому save() а не update(), но я так понимаю надо не создавать а обновлять? Тогда почему не передаете id? И почему бы не создать новый экшен, для этого?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Max.Credit Санкт-Петербург
от 150 000 до 150 000 руб.
Willz Москва
от 150 000 руб.
Fmedia Санкт-Петербург
от 40 000 до 100 000 руб.
14 авг. 2018, в 22:43
350 руб./за проект
14 авг. 2018, в 19:03
10000 руб./за проект
14 авг. 2018, в 18:10
1000 руб./в час