Laravel 4模型验证与控制器验证

Sla*_*a V 12 laravel laravel-4

这似乎是在Laravel 4验证模型的官方途径是通过ValidatorController?有人能指出为什么会这样吗?

实施验证不是更有意义Model吗?

Nik*_*ess 15

我更喜欢Ardent包,使模型的验证尽可能平滑和最小化.对我而言,在模型中使用验证规则也更有意义.

$model->save()调用时它将返回false 并且验证失败,然后您可以通过$model->errors()->all()例如获取错误消息.

  • 感觉非常Laravel'ish给我:使用一个包给你的所有辛苦工作. (2认同)

Nic*_*aag 5

在模型中进行验证确实有意义,但这种验证应该只是为了确保您不保存任何损坏的数据.

Validator是在Controller因为它是用来处理输入,并生成输出.如果您要在Model那时进行验证,则必须返回false,并向用户显示有关无效数据的最随机的错误消息.您还可以返回一些包含生成的所有错误的数组,但这是Model不应该做的事情.或者您可以抛出异常,这是在模型尝试使用无效数据时应该执行的操作,但它会杀死应用程序,这不是表单验证程序所需的解决方案.

在Controller中执行表单验证时,您可以使用错误消息执行所需操作,而无需更改模型的用途.

在您的模型中,您可以进行验证以确保您没有犯错,这将损坏您的数据库.因为如果发生这种情况,应用程序应该关闭.

因此,将此问题放在您的问题的真实答案中:模型中的验证有助于避免损坏的数据,但如果您想向用户提供有关无效输入的反馈,则应该在控制器中.

  • 我认为在一个地方定义验证规则,而不是在多个地方(模型,控制器,前端形式)定义验证规则是关键.在这种情况下,该模型是常见的事情. (7认同)