Yii2模型错误在视图中消失,为什么



我有一个视图,其中包括一个表单。如果模型的属性在数据库中为空,我会看到表单,这样我就可以立即上传一个文件,同时更新数据库中的属性,这样下次我就可以根据上传的内容看到我想要的数据。

这是我的控制器:

public function actionView($id) {
$model = $this->findModel($id);
...
if ($model->load($_POST)) {
$this->actionUpload($id);
}
return $this->render('view', [
'model' => $model,
]);
}

public function actionUpload($id) {
$model = $this->findModel($id);
if ($model->upload()) {
return $this->redirect(Url::previous());
} else {
# ***
return $this->render('view', [
'model' => $model,
]);
}
}

***如果验证失败,此时我可以看到错误,但在视图中不再出现,因为它是空的。怎么可能呢?它应该在那里,不是吗?在某个地方我犯了一个错误,但我不知道是怎么犯的。

我的观点:

if ($model->attr) {
echo $model->attr;
} else {
echo $this->render('_upload', [
'model' => $model,
]);
}

_上传:

echo $form->field($model, 'uploadedFiles[]')->fileInput([...
echo $form->errorSummary($model);
(submitButton)

你能告诉我我的错误在什么时候可以消失吗?

将两个控制器操作合并为一个操作。从第一个操作开始,您调用的是第二个操作,该操作在成功时进行重定向,因此它永远不会返回到第一个操作。

最新更新