Php 为什么laravel在控制器中定义验证而不是雄辩的模型?

Php 为什么laravel在控制器中定义验证而不是雄辩的模型?,php,laravel,Php,Laravel,我正在阅读,对验证存在一些疑问 如果web服务器将向桌面用户提供web界面,向移动用户提供api界面,则存在一个问题:它将在api控制器和web控制器中定义两次验证,这是重复的 如果有另一个共同开发人员开发一个大型项目,他应该知道以前的开发人员定义的验证,这不利于协作开发 我认为它应该在相同的位置定义验证逻辑,就像Rails中的ActiveRecord一样,您可以在Requests文件夹中创建一个请求文件,并将该文件注入controller方法,它将自动验证请求。请继续阅读Laravel验证文档

我正在阅读,对验证存在一些疑问

如果web服务器将向桌面用户提供web界面,向移动用户提供api界面,则存在一个问题:它将在api控制器和web控制器中定义两次验证,这是重复的

如果有另一个共同开发人员开发一个大型项目,他应该知道以前的开发人员定义的验证,这不利于协作开发


我认为它应该在相同的位置定义验证逻辑,就像Rails中的ActiveRecord一样,您可以在Requests文件夹中创建一个请求文件,并将该文件注入controller方法,它将自动验证请求。请继续阅读Laravel验证文档,您将详细了解此方法。

您可以在模型中添加一个方法,如“getValidator”,它为您提供验证程序,然后在控制器中,您只需询问此问题

然而,验证器在大多数情况下都希望验证来自(用户)输入的输入。想象一下必须应用于多个模型或复杂关系的输入。如果说验证实际上是/one模型的一部分,那就很奇怪了。最后,它只是验证输入,所以您需要在控制器中使用它

在您的案例中,更好的抽象方法可能是将“web”部分解释为一个连接到API的应用程序。然后让API成为与后端交互的唯一方式,因此验证只在一个位置(API)进行

最后,如何构建它取决于你自己