@alekskondr
php, javascript, yii2, drupal, MQL

Как сделать редирект в yii2?

Есть форма
<?php $form = ActiveForm::begin(); ?>
<?= Html::activeTextInput($model, 'sum', [ 'class' => 'form-control','name' => 'sumer', 'value' => '']) ?>
<?= Html::submitButton($model->isNewRecord ? Yii::t('frontend', 'Transfer') : Yii::t('frontend', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>


контроллер
public function actionTrans()
    {

        $model = new Transactions();        
        if ($model->load(Yii::$app->request->post()) ) {

            return $this->redirect(['create']);
            
        } else {
            return $this->render('trans', [
                'model' => $model,
            ]);
        }
    }


файл приема формы
<?php
 $su =  ($_POST['sumer']);
echo $su;
?>


Надо сделать чтоб при нажатии на отправку формы, это проходило через контроллер и принимался post файлом.
У меня получается пост данные обрываются в контроллере и файл create ничего не принимает, подскажите как решить эту задачу.
  • Вопрос задан
  • 17861 просмотр
Пригласить эксперта
Ответы на вопрос 3
bitver
@bitver
Вы неправильно понимаете суть POST запроса, фреймворк здесь не при чём. Если хотите какие-то данные перекинуть с одного запроса на другой (в случае с Yii - это между двумя action), то вам придётся это где-то сохранить. Как вариант могу предложить хранить их в сессии Yii::$app->session->set()// ->get()и в actionCreate() передавать во view эти данные
return $this->render('create', [
  'data1' => Yii::$app->session->get('someData1'),
  .....
],);

Хотя в вашем коде вы загружаете POST данные в модель, её можно ведь сохранить
if ($model->load(Yii::$app->request->post()) ) { // Здесь вы грузите
            // Делаете что хотите
            $model->save(); // Сохранили
            return $this->redirect(['create']);
        }

А в другом запросе (который обработает ваш actionCreate()) вытаскиваете это из базы как последний элемент.
Ответ написан
Комментировать
Lumore
@Lumore
Front-end developer
<?php $form = ActiveForm::begin([
'action' => 'ваш урл'
]); ?>
Ответ написан
@mikaakim
Веб-разработчик ПО
Просто подключить файл, не?
require "<----path to file---->";
Ответ написан
Ваш ответ на вопрос

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

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