【发布时间】:2018-01-03 03:55:22
【问题描述】:
我需要去掉“确认重新提交”对话框以防止多次提交表单,并且还需要在用户刷新页面时清除 ZF2 自动呈现的表单验证错误。
我已经阅读了 ZF2 关于 PRG 插件的文档,但是当我仍然想显示表单错误时,我不确定如何实现它。
这是我当前的代码:
public function loginAction()
{
$sm = $this->getServiceLocator();
$forms = $this->getForms();
$viewModel = new ViewModel();
$viewModel->setTemplate('customer/customer/view-login-reg-form.phtml');
$this->layout()->setVariable('title', 'Welcome!');
$viewModel->setVariables($forms);
$request = $this->getRequest();
if($request->isPost()) {
$postData = $request->getPost();
$forms['formLogin']->setData($postData);
$forms['formLogin']->setInputFilter($sm->get('Customer\Form\Filter\LoginFilter')->getInputFilter());
if ($forms['formLogin']->isValid()) {
$data = $forms['formLogin']->getData();
$customer = $this->getCustomerTable()->getCustomer($data['login-email'], $data['login-password']);
if (empty($customer)) {
$viewModel->setVariable('errorMessage', 'Account does not exist');
return $viewModel;
}
$LoginService = $sm->get('Customer\Service\LoginService');
$LoginService->initLogin($customer);
$this->handleRedirect();
}
}
return $viewModel;
}
【问题讨论】:
-
为什么会出现表单错误时多次提交的问题?如果有错误,是否重新提交表单都没有关系。您的代码看起来不错。
-
@TimFountain 他们希望我摆脱 所有 表单的“确认重新提交”提示(要统一?)以避免双重处理,例如双重插入记录。
标签: zend-framework2 post-redirect-get