yii2如何将post数据从一个视图传输到两个视图?

yii2如何将post数据从一个视图传输到两个视图?,yii2,Yii2,我正在尝试用yii2创建一个两步表单 这是我的SiteController.php public function actionCreateCharacter() { $model = new Character(); var_dump(Yii::$app->request->post('Character')); if ($model->load(Yii::$app->request->post())) { $attribu

我正在尝试用yii2创建一个两步表单

这是我的SiteController.php

public function actionCreateCharacter()
{
    $model = new Character();
    var_dump(Yii::$app->request->post('Character'));
    if ($model->load(Yii::$app->request->post())) {
        $attributes=['imie','nazwisko','plec','wyznanie_id'];
        if ($step1 = $model->validate($attributes)) {
            //var_dump($step1);
            // form inputs are valid, do something here
            //var_dump(Yii::$app->request->post('Character');

            return $this->render('createCharacterStep2', [
                'model' => $model,
            ]);;
        }
        else {
            // validation failed: $errors is an array containing error messages
            $errors = $model->errors;
        }
    }

    return $this->render('createCharacter', [
        'model' => $model,
    ]);
}

public function actionCreateCharacterStep2()
{
    $model2 = new Character();
    var_dump($model);
    if ($model2->load(Yii::$app->request->post())) {
        var_dump(Yii::$app->request->post('Character'));
        if ($model2->validate()) {
            // form inputs are valid, do something here
            return;
        }
    }

    /*return $this->render('createCharacter2', [
        'model' => $model,
    ]);*/
}
。。。这是我的Character.php(model+attributelabel和tableName)

我可以通过
createCharacter
中的
Yii::$app->request->POST()
访问
$\u POST
——我获得
imie
nazwisko
plec
wyznanie\u id

但是当我在步骤2中发送表单时,我只有步骤2中的post数据

如何设置步骤1+步骤2的post数据


对不起,我说的是英语,请提前感谢。

如果您必须填写
步骤1
步骤2
,还有另一种方法。然后先保存步骤1的数据,然后保存步骤2的数据
如果您没有使用两个表,那么您可以为每个步骤的每个表单创建两个表单,还可以根据字段为每个步骤创建
场景。
我认为这可能会有所帮助
您也可以根据评论中的讨论使用会话,或者您可以使用扩展阵列向导

但是阵列向导扩展没有很好的文档记录,因此我建议您尝试我的方法,我将帮助您

如果必须为
步骤1
步骤2
设置表格,还有另一种方法。然后先保存步骤1的数据,然后保存步骤2的数据
如果您没有使用两个表,那么您可以为每个步骤的每个表单创建两个表单,还可以根据字段为每个步骤创建
场景。
我认为这可能会有所帮助
您也可以根据评论中的讨论使用会话,或者您可以使用扩展阵列向导

但是阵列向导扩展没有很好的文档记录,因此我建议您尝试我的方法,我将帮助您

从step1 action渲染step2时,您始终可以向控制器的action传递附加数据。所以我添加了“STEPONEPOSTS”post变量,它包含步骤1的所有帖子。检查下面

public function actionCreateCharacter()
{
    $model = new Character();
    var_dump(Yii::$app->request->post('Character'));
    if ($model->load(Yii::$app->request->post())) {
        $attributes=['imie','nazwisko','plec','wyznanie_id'];
        if ($step1 = $model->validate($attributes)) {
            //var_dump($step1);
            // form inputs are valid, do something here
            //var_dump(Yii::$app->request->post('Character');

            return $this->render('createCharacterStep2', [
                'model' => $model,
                'STEPONEPOSTS' => Yii::$app->request->post(),
            ]);;
        }
        else {
            // validation failed: $errors is an array containing error messages
            $errors = $model->errors;
        }
    }

    return $this->render('createCharacter', [
        'model' => $model,
    ]);
}
现在在Step2视图中,您可以将Step1 posts变量设置为

$STEPONEPOSTS

在从step1动作呈现step2时,您始终可以将附加数据传递给控制器的动作。所以我添加了“STEPONEPOSTS”post变量,它包含步骤1的所有帖子。检查下面

public function actionCreateCharacter()
{
    $model = new Character();
    var_dump(Yii::$app->request->post('Character'));
    if ($model->load(Yii::$app->request->post())) {
        $attributes=['imie','nazwisko','plec','wyznanie_id'];
        if ($step1 = $model->validate($attributes)) {
            //var_dump($step1);
            // form inputs are valid, do something here
            //var_dump(Yii::$app->request->post('Character');

            return $this->render('createCharacterStep2', [
                'model' => $model,
                'STEPONEPOSTS' => Yii::$app->request->post(),
            ]);;
        }
        else {
            // validation failed: $errors is an array containing error messages
            $errors = $model->errors;
        }
    }

    return $this->render('createCharacter', [
        'model' => $model,
    ]);
}
现在在Step2视图中,您可以将Step1 posts变量设置为

$STEPONEPOSTS

将数据保存到会话如何执行?正常情况下$\u SESSION['key']=value?我想我发现了:我会试着让你知道OK,以及如何保存SESSION到post,我可以使用$model->validate()将数据保存到SESSION如何做?Normaly$_SESSION['key']=value?我想我发现了:我会尝试让你知道好的,以及如何保存SESSION以发布我可以使用$model->validate()确切地说,我在DB中有一个表,我想为一个模型创建两个表单(步骤)。确切地说,我在DB中有一个表,我想为一个模型创建两个表单(步骤)。