Php Kohana 3.2 ORM验证和表单验证

Php Kohana 3.2 ORM验证和表单验证,php,kohana,kohana-3.2,Php,Kohana,Kohana 3.2,从去年开始,我就在Kohan 3.0.7进行维护项目。当我在寻找最新版本(3.2)时,我遇到了在使用Kohana 3.0.7时没有注意到的ORM验证。在我的项目中,我使用表单验证并验证了模型中的所有表单。阅读时,我发现在控制器本身中添加了额外字段“确认密码”的验证规则。所以,我想知道- 我们可以将ORM验证规则完全移动到模型文件中吗?如果可以的话,那怎么办呢 值方法是否负责sql注入?您不能也不应该将模型验证移动到控制器。 在您提供的示例中,他们使用了所谓的“额外验证”。 查看保存-它使用可选的

从去年开始,我就在Kohan 3.0.7进行维护项目。当我在寻找最新版本(3.2)时,我遇到了在使用Kohana 3.0.7时没有注意到的ORM验证。在我的项目中,我使用表单验证并验证了模型中的所有表单。阅读时,我发现在控制器本身中添加了额外字段“确认密码”的验证规则。所以,我想知道-

我们可以将ORM验证规则完全移动到模型文件中吗?如果可以的话,那怎么办呢


值方法是否负责sql注入?

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


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

嘿,感谢您的澄清。我知道我们不应该把模型验证转移到控制器上,实际上,我这个问题的目的是,如果有可能让控制器也不受外部验证的影响。但是,你澄清了这一点。你能为这个问题添加一个词吗?