验证表单并将其过滤后的输入传递给服务层,或者将原始输入传递给服务层,让服务验证输入(有或没有表单实例)是否更好?
显然,如果是后者,控制器仍然需要访问表单,以便可以将其发送到视图进行渲染。如果是这样,您是否只是通过服务访问表单($ service-> getRegistrationForm())?
另见:
答案 0 :(得分:0)
表单本身应该处理验证,ZF2在Form
类上有启用此功能的方法。
在控制器上的一个操作中,我需要从表单中获取某种数据,我要做的第一件事就是验证表单($form->isValid()
)。如果表单无效,控制器将立即处理此问题。通常这涉及直接跳转到带有表单的ViewModel
(现在包含数据+验证结果),以便用户可以看到任何验证错误。
我不明白为什么在没有检查您是否获得有效数据或您知道无效的数据的情况下,为什么还要进一步。事实上,数据甚至可能是恶意的(CSRF,由表单验证处理)。
基本上,传递原始输入和过滤输入的问题从未真正出现过。