@hollanditkzn

Как изменять данные при нажатие на submit?

Ситуация такая, что мне нужно когда нажимает определенная роль submit в базе данных изменяется значение автоматически. Если более подробно в отдел пришел заказ, его нужно отработать, когда отдел его отработал и он готов, нужно при нажатие на кнопку менялся статус автоматически и он показывался в другом отделе.
Я пробовал сделать так в контроллере
$model = $this->findModel($id);

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id_zakaz]);
        } else {
            return $this->render('view', [
            'model' => $this->findModel($id),
            'user_name' => $user_name,
            ]);
        }

А в самой view я прописал следующий код
<?php $form = ActiveForm::begin(); ?>
        <?php if (Yii::$app->user->can('master')): ?>
        <?= $form->field($model, 'status')->hiddenInput(['value' => '7'])->label(false) ?>
        <?= Html::submitButton('Выполнено', ['class' => 'btn btn-primary']) ?>
        <?php endif ?>
<?php ActiveForm::end(); ?>

Надеюсь весь код не надо показывать.
В данный момент у меня статус не меняется
  • Вопрос задан
  • 280 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
1. Откройте debug панель и посмотрите почему, там есть ответ. Мы же не медиумы. А у Вас под рукой все ответы в дебаг панеле. Может быть запрос не туда идет или валидацию не проходит.
2. Все Ваше вью можно заменить на:
<?= Html::a('Выполнить', ['check', 'id' => $model->id], [
            'class' => 'btn btn-primary',
            'data' => [
                'confirm' => 'Вы уверены, что хотите одобрить эту ерунду?',
                'method' => 'post',
            ],
        ]) ?>

Далее в контролере можно оставить что-то такое (можно и более красиво, но боюсь запутаю):
public function actionCheck($id)
    {
        if($model = $this->findModel($id)){
           $model->status = 7;
           $model->save();
        }
        return $this->redirect(Yii::$app->request->referrer);
    }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Arik
Может потому что rules() нет правила для статуса?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы