Задать вопрос
@JoneCode

Как обновить разные данные в двух таблицах из одной формы?

Добрый день, знаю что всех достал уже вопросами, но помогите, пожалуйста, как обновить разные данные в двух таблицах из одной формы?

Есть таблица "features" и таблица "features_value", на сайте выглядит так где есть свойства и его значения:
5f72f1cce4577075011032.jpeg

и есть форма которая должна сохранять как данные в таблицу "features" и его значения в "features_value"!

Сама форма:
<?php $form = ActiveForm::begin(); ?>

    <div class="row my-row-clear">
        <div class="col-lg-8 my-class-bg">
            <?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?>
            <?= $form->field($model, 'url')->textInput(['maxlength' => true]) ?>
        </div>
        <div class="col-lg-3 col-lg-offset-1 my-class-bg">
            <?= $form->field($model, 'url_in_product')->dropDownList([0 => 'Нет', 1 => 'Да'], ['options' => ['0' => ['Selected' => true]]]) ?>
            <?= $form->field($model, 'in_filter')->dropDownList([0 => 'Нет', 1 => 'Да']) ?>
        </div>
    </div>

    <div class="value">
        <div class="value__title" style="display: flex;margin-bottom: 16px">
            <h4>Значения свойства</h4>
            <div class="value__btn" style="margin-left: 25px">
<!--                --><?//= Html::a('Добавить значение', ['create-value'], ['class' => 'btn btn-success', 'data-toggle' => 'modal', 'data-target' => '#w0']) ?>
<!--                --><?//= Html::a('Добавить значение', Url::to(['add-value', 'id' => $model->id]), ['class' => 'btn btn-success']) ?>
                <?= Html::a('Добавить значение', Url::to(['add-value', 'id' => $model->id]), ['class' => 'btn btn-success', 'data-toggle' => 'modal', 'data-target' => '#w0']) ?>
            </div>
        </div>
        <table class="table">
            <thead class="thead-dark" style="background-color: #222;color: #fff;">
            <tr>
                <th scope="col"></th>
                <th scope="col">Значение</th>
                <th scope="col">Кол-во товаров</th>
                <th scope="col">Индексировать</th>
                <th scope="col"></th>
                <th scope="col"></th>
            </tr>
            </thead>
            <tbody>
            <?php if($features):?>
            <?php foreach ($features as $fv): ?>
            <tr>
                <th scope="row"></th>
                <td>
                    <?= $form->field($fv, 'value')->textInput(['maxlength' => true])->label(false); ?>
                </td>
                <td>*</td>
                <td>
                    <?= $form->field($fv, 'to_index')->dropDownList([0 => 'Нет', 1 => 'Да'], ['options' => ['0' => ['Selected' => true]]])->label(false); ?>
                </td>
                <td></td>
                <td>
                    <?= Html::a('x', Url::to(['features/delvalue', 'id' => $fv->id]), ['data-method' => 'POST']) ?>
                </td>
            </tr>
            <?php endforeach; ?>
            <?php else:?>
            <tr>
                <td></td>
                <td>
                    <span>Значения для данного свойства не добавлены</span>
                </td>
            </tr>
            <?php endif;?>
            </tbody>
        </table>
    </div>

    <div class="form-group">
        <?= Html::submitButton('Сохранить данные', ['class' => 'btn btn-success']) ?>
    </div>

    <?php ActiveForm::end(); ?>


и стандартный контроллер который только обновляет "features" а "features_value" значения не обновляться, как сделать так чтоб они тоже обновлялись?

Сам Controller:
public function actionUpdate($id)
    {
        $model = $this->findModel($id);
        $features = FeaturesValue::find()->where(['feature_id' => $id])->all();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            Yii::$app->session->setFlash('success', "Настройки сохранены. Изменения отображаются на сайте!");
            return $this->redirect(['update', 'id' => $model->id]);
        }

        return $this->render('update', [
            'model' => $model,
            'features' => $features,
        ]);
    }
  • Вопрос задан
  • 280 просмотров
Подписаться 1 Простой 20 комментариев
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы