CakePHP3.X:Difference buildSchema X buildValidator

CakePHP3.X:Difference buildSchema X buildValidator,php,validation,cakephp,cakephp-3.0,Php,Validation,Cakephp,Cakephp 3.0,我正在学习CakePHP 3.X版本,对表单验证感到非常困惑。 在文档()中,您需要创建一个类来验证表单,并且有两个方法来验证数据 第一种方法: protected function _buildSchema(Schema $schema) { return $schema; } protected function _buildValidator(Validator $validator) { return $validator; } 第二种方法: protecte

我正在学习CakePHP 3.X版本,对表单验证感到非常困惑。
在文档()中,您需要创建一个类来验证表单,并且有两个方法来验证数据

第一种方法:

protected function _buildSchema(Schema $schema)
{
    return $schema;
}  
protected function _buildValidator(Validator $validator)
{
    return $validator;
}  
第二种方法:

protected function _buildSchema(Schema $schema)
{
    return $schema;
}  
protected function _buildValidator(Validator $validator)
{
    return $validator;
}  
它们之间的真正区别是什么?
在文档示例中是这样说的:

\u buildSchema用于定义FormHelper用于创建HTML表单的架构数据。可以定义字段类型、长度和精度

\u buildValidator获取一个可以附加验证器的Cake\Validation\Validator实例

我很困惑,因为如果你看文档中的例子,你会发现他在第二种方法中验证输入长度之类的东西,但在第一种方法的描述中,他说你也可以这样做

有没有可能向我解释一下它们之间的真正区别,并给我举个例子

谢谢

数据库系统的数据库模式是用数据库管理系统(DBMS)支持的正式语言描述的结构。术语“模式”指的是数据的组织,它是如何构建数据库的蓝图

模式描述了您的数据结构、表布局。蓝图

在计算机科学中,数据验证是确保程序在干净、正确和有用的数据上运行的过程。它使用例程,通常称为“验证规则”、“验证约束”或“检查例程”,检查输入到系统的数据的正确性、意义和安全性。这些规则可以通过数据字典的自动化设施来实现,或者通过包含显式应用程序验证逻辑来实现

验证是将放入数据库的数据检查到描述数据结构的模式中的过程

结论 您需要首先描述您的模式。您通过表单输入的数据经过验证


另外,文档也非常清楚这一点,我想您只是误解了:您可以定义字段类型、长度和精度。定义某些内容不是验证某些内容。:)

架构可能指示字段的长度应为20个字符。验证器可以确保输入其中的数据至少是某个最小长度,或者表示有效的电话号码格式,或者至少有一个大写字母,或者其他任何形式。它与基于表的版本完全不同,只是在这里告诉它模式,而不是从表本身找到模式。