我正在尝试将Job,Event,Listener设计模式用于我正在处理的应用程序。
我是Laravel和这个设计模式的新手,但我认为它非常适合我的需要。
这是我正在进行的工作的快速概述:
我有3个不同的页面。每个页面都有一个表单。当用户完成第一个表单时,我需要将它们指向第二个表单,然后在第二个表单完成后指向第三个表单。第三个表单完成后,我想将用户路由到另一个页面"记录列表。"
这是我到目前为止所做的事情"我希望自己有点走上正确的轨道"
在我的控制器中,我有两种方法。第一种方法" Show()",根据访谈阶段" stage1,stage2,stage 3显示正确的表格。"第二种方法" store()"。此方法将表单数据存储到数据库中。
当点击show()路线时,我会调度StartInterview和DisplayQuestions工作。
面试开始后,我发起了InterviewWasStarted事件。然后,当问题显示时,#34;新形式"然后我解开QuestionsWasDisplayed事件。
这两个事件都有听众,他们目前什么都不做,可能会在以后使用。"
然后,当用户点击"提交"按钮," store()"方法将被执行。
在"商店" route,我发送SaveAnswers和SaveInterview Job。 SaveAnswers作业将采用表单值并将其提交到数据库中。然后SaveInterview将更新访谈表,说明用户当前在表单#2或表单#3上。
指导
我几乎没有问题,我不确定什么是最好的"正确的方式"去做。我如何验证表格?我会创建一个验证表单的工作吗?如果是这样,我会从控制器中的store()方法发送它,还是从SaveAnswers作业发送它? "自从在另一份工作中派遣一份工作以后,是否会这样做?"我总是需要在保存之前进行验证,因此两个作业应该耦合一些如果验证失败则SaveAnswer应该中止。
第三页完成后,如何将用户定向到新页面?是否因为从听众内部路由用户而感到沮丧?对我来说听起来是个坏主意"?我会从WhenInterviewCompleted侦听器重定向使用。我会从监听器内部创建闪存数据并检查控制器中的闪存数据吗?
我认为我的问题是我仍然在考虑程序代码而不是来自"告诉,不要问"心态。
我很感激一个很好解释的答案,帮助我在正确的道路上编码