2015-06-22 165 views
1

你好,Laravel验证器,请求

我想知道如何处理与Laravel 5.数据验证我看到,这可以使用或验证,或请求文件来完成。问题是有很多我没有得到的观点。

  • 使用请求文件进行验证或验证程序类有什么区别?
  • 如果我有验证条件,并且我想只在提交相关字段的情况下使用它们,我该怎么做?如果我使用“必需的”关键字,它将不起作用,因为当该字段未被提交时它将失败。如果我不使用它,它会接受空串...

谢谢!

+1

您是否使用L5或L5.1,您应该再次阅读文档,有很多示例http://laravel.com/docs/5.1/validation基本上主要的区别在于验证请求类通常比在控制器中。您可以创建“存储请求”或“更新请求”,并针对存储操作和更新操作制定不同的规则(当然,控制器本身是可行的,因为您有两种方法,我的意思是更新方法,您将更新规则放在哪里)。 )请阅读更多文档或在laracast上搜索有关此事的信息。 – Kyslik

+0

感谢您的帮助!我会在这个问题上检查更多的事情,但有时候很难完全理解,或者甚至理解事情说明你想要他们,当你开始一个新的框架:) –

+0

我个人认为所有的东西都在请求它的“点击“之前,控制器本身,所以当验证通过时,我是100%肯定输入验证只有一行(在控制器方法注入请求)。正如下面的答案所述,它的代码很干净。起初我很喜欢“这么多文件......”起初我并不喜欢这个想法,但是现在当我有足够的资源时,它清楚了每个文件的功能。 – Kyslik

回答

2

1.理论上有控制器验证和验证使用FormRequest之间没有差别。通常你应该使用FormRequest。这将保持你的控制器清洁和最小。但是有一段时间,在控制器中使用Validator是明智的,例如,你知道只会有一个字段需要验证,那么使用FormRequest就太过分了。所以这是一个优先考虑的问题。

2.如果该字段不是必需的,则不必使用'required'。如果该字段已提交,则该字段的其他验证仍将运行。如果没有提交,将不会发生。

....... 
    'money' => 'numeric', 
    ....... 

上述规则将确保货币字段只有在提交时才是数字。如果没有提交,则不会引发验证错误。

我希望这会有所帮助。

+0

非常感谢!我也会试试这个:) –

1
  1. 请求类是更好的方式来验证请求,因为 它们有助于提取类的构造方法, 这应该是尽可能的干净此功能。
  2. 使用'有时'验证程序。 http://laravel.com/docs/5.1/validation#conditionally-adding-rules
+0

谢谢,我会试试这个,并保持哟uupdated!如果一切顺利,我会验证答案。 –