Laravel验证程序与请求

Laravel验证程序与请求,laravel,laravel-5,laravel-validation,Laravel,Laravel 5,Laravel Validation,你好, 我想了解如何使用Laravel 5处理数据验证。我发现这可以使用或验证程序或请求文件来完成。问题是有很多我没有得到的分数 使用请求文件进行验证与使用验证器类有什么区别 如果我有验证条件,并且我只想在提交相关字段时使用这些条件,我该怎么做?如果我使用“required”关键字,它将不起作用,因为当字段未提交时,它将失败。如果我不使用它,它将接受空字符串 谢谢你 请求类是验证请求的更好方法,因为 它们有助于从构造函数方法中提取此功能, 应该尽可能干净 使用“有时”验证器 1。理论上,控制

你好,

我想了解如何使用Laravel 5处理数据验证。我发现这可以使用或验证程序或请求文件来完成。问题是有很多我没有得到的分数

  • 使用请求文件进行验证与使用验证器类有什么区别
  • 如果我有验证条件,并且我只想在提交相关字段时使用这些条件,我该怎么做?如果我使用“required”关键字,它将不起作用,因为当字段未提交时,它将失败。如果我不使用它,它将接受空字符串
谢谢你

  • 请求类是验证请求的更好方法,因为 它们有助于从构造函数方法中提取此功能, 应该尽可能干净
  • 使用“有时”验证器
    1。理论上,控制器验证和使用FormRequest验证之间没有区别。通常您应该使用FormRequest。这将使您的控制器保持清洁和最小化。但有时在控制器中使用Validator是明智的,例如,您知道只有一个字段需要验证,那么使用FormRequest就太过了。因此,这是一个偏好的问题

    2.如果该字段不是必填字段,则不必使用“required”。如果提交该字段,则该字段的其他验证仍将运行。如果不提交,什么也不会发生

      .......
      'money' => 'numeric',
      .......
    
    上述规则将确保只有在提交时,money字段才是数字字段。如果未提交任何验证,则不会抛出任何验证错误


    我希望这有帮助

    如果您使用L5或L5.1,您肯定应该再次阅读文档,这里有大量的示例,主要区别在于验证请求类通常比控制器中的更复杂。您可以创建“存储请求”或“更新请求”,并且对存储操作和更新操作有不同的规则(当然在控制器本身是可行的,因为您有两种方法,我指的是更新方法,您可以在其中放置更新规则…)请阅读更多文档或搜索有关此问题的Laracast。感谢您的帮助!我会检查更多关于这件事的东西,但有时很难得到全部,甚至很难理解,当你开始使用一个新的框架时,事情说明了你想要他们做什么:)就我个人而言,我在请求中验证所有内容,它的“命中”在控制器本身之前,所以当验证通过时,我100%确定输入只通过一行验证(在控制器方法中注入请求)。正如下面的回答所述,它的代码非常干净。起初我喜欢“这么多文件…”起初我不喜欢这个想法,但现在当我有足够的资源时,它清楚每个文件都做了什么。