Kohana 3.2 ORM验证和表单验证


Kohana 3.2 ORM validation and form validations

从去年开始,我在Kohan 3.0.7中从事维护项目。当我在寻找最新版本(3.2)时,我遇到了ORM验证,这是我在使用Kohana 3.0.7时没有注意到的。在我的项目中,我使用了表单验证并验证了模型中的所有表单。http://kohanaframework.org/3.2/guide/orm/examples/validation,在阅读时,我发现控制器本身中添加了额外字段"确认密码"的验证规则。所以,我想知道——

我们可以将ORM验证规则完全移动到模型文件中吗?如果我们可以,那么如何做到这一点?

方法是否负责SQL注入?

不能也不应该将模型验证移动到控制器。
在您提供的示例中,他们使用了所谓的"额外验证"。
看看保存方法 API - 它采用可选的Validation参数,稍后check方法中使用,以验证其他逻辑(例如密码匹配)。
原因是模型中没有一个名为"password_matching"的字段(然后您可以在函数;)中编写此规则rules因此您需要在这种情况下使用外部验证。
使用外部验证的另一个示例是上传文件,并根据上传结果对ORM模型进行操作。

的,ORM是SQL注入安全的,因为它使用Query Builder也是安全的(除了DB::expr应该格外小心使用)。