2014-02-09 25 views
0

我对使用Laravel在何处/如何实际验证表单输入感到困惑。有人向我建议,我不应该在模型中这样做,但应该有一个单独的管理器/存储库来验证表单输入。因此,模型的表单验证和实际保存由两个独立的类来处理。Laravel在哪里/如何验证表单输入

然而,我看到人们直接在模型上验证表单输入(我只是看了Jeffrey Way的Laracasts视频中的一个,他完全是这样做的)。

有谁能给我一些方向吗?

+0

我个人更喜欢做的控制器,但我不知道这是正确的方式/最佳途径去做吧。 – 2014-02-09 12:09:00

回答

0

这真的是一个意见问题,真的没有正确的答案

有一件事是非常被接受的,因为你正在MVC框架中编写一个应用程序,所以你应该至少在某个层次上接受这个模式。 MVC倾向于fat models, lean controllerscontroller代码应该用于链接模型和视图,而不是应用程序逻辑。因此,作为最佳做法,您应该不会在controller中进行表单验证。现在

modelform validation class - 这一个是少一定;)

模式,这似乎是对这种类型的逻辑的非常有用的地方,我不认为你可以这样做错误如果您在此处进行表单验证。正如你所指出的那样,尊重社区的领导人,如杰弗里路作秀表单验证在model

自定义的验证类一些人认为(肖恩·麦库尔例如)与表单验证,你实际上并没有验证模型,本身,但形式本身,因此代码不属于model。这个观点是你的表单逻辑/数据对于这种形式可能是唯一的,而不是特定于模型的。例如,您的表单可能会输入来自多个models的数据,因此代码应保持独立。例如一个带有标签的博客文章。您实际上正在验证poststags上的输入,并且在Posts模型中处理表单验证可能没有意义。

TL:DR - 这确实是一个你感觉如何让你的工作满意的问题。没有正确的方式

上有老Laravel论坛上这是一个相当不错的讨论:

http://forumsarchive.laravel.io/viewtopic.php?id=1199