yii2如何将post数据从一个视图传输到两个视图?
我正在尝试用yii2创建一个两步表单 这是我的SiteController.phpyii2如何将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
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中有一个表,我想为一个模型创建两个表单(步骤)。