gpt4 book ai didi

validation - Yii2:为什么验证错误不会抛出异常?

转载 作者:行者123 更新时间:2023-12-04 01:54:43 26 4
gpt4 key购买 nike

我不确定这是否仅限于 Yii2 或者是否也可以与其他框架甚至一般性讨论。

在 Yii2 我可以调用 validate()在模型对象上。这将返回真或假。如果是假的,我可以调用getErrors()查看此对象中当前存在哪些验证问题。

为什么这种行为会以这种方式实现?为什么 validate() 不抛出一些 ValidationExceptions?我发现错误是模型对象的一部分也有点奇怪。为什么他们不属于这种异常(exception)?

这种实现的优点是什么?为什么这样做?我更喜欢异常(exception)。有了这个,我可以更好地区分期望处理和异常处理。所有不需要的都在 catch block 中处理。期望发生在 try block 中。这不是个好主意吗?

最佳答案

因为通常错误与表格结合使用。

假设您有一个带有一些输入字段(链接到模型属性/属性)的表单,并且您想对这些字段做一些事情,也许保存它们或其他东西。

在保存字段之前,您要验证它们是否都有效。当validate()方法被调用,所有属性都被一一验证,如果需要,每个属性都会产生一个错误。如果验证为假并且您有错误集合,您可以再次显示表单,但这次将错误附加到字段。

如果每次发生错误时都抛出异常,您的应用程序将停止运行并仅显示一个错误。或者您必须为所有属性编写 try-catch block ,这是不必要的。当您的验证返回 true 时,您可以运行执行处理的下一步,并且可以确保所有值都有效。

如果你真的想要异常,当然可以编写自己的验证器(http://www.yiiframework.com/doc-2.0/yii-validators-validator.html)

关于validation - Yii2:为什么验证错误不会抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28477514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com