CakePHP 3.X:差异buildSchema X buildValidator

时间:2016-11-09 23:01:02

标签: php validation cakephp cakephp-3.0

我正在学习CakePHP 3.X版本,我对表格验证感到困惑 在文档(http://book.cakephp.org/3.0/en/core-libraries/form.html)中,您需要创建一个类来验证表单,并且您有两种方法来验证数据。

第一种方法:

protected function _buildSchema(Schema $schema)
{
    return $schema;
}  

第二种方法:

protected function _buildValidator(Validator $validator)
{
    return $validator;
}  

他们之间真正的区别是什么? 在文档示例中这样说:

  

_buildSchema 用于定义FormHelper用于创建HTML表单的架构数据。您可以定义字段类型,长度和精度。

     

_buildValidator 获取可以附加验证程序的Cake \ Validation \ Validator实例。

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

有可能向我解释他们之间的真正差异并向我展示一个例子吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

Database Schema

  

数据库系统的数据库模式是以数据库管理系统(DBMS)支持的正式语言描述的结构。术语“模式”是指将数据组织为数据库构建方式的蓝图。

架构描述了您的数据结构,表格布局。蓝图。

Data Validation

  

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

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

结论

您需要先描述您的架构。您通过表单输入的数据已经过验证。

此外,文档也很清楚,我认为你只是误解了它:你可以定义字段类型,长度和精度。定义的东西不是验证一些东西。 :)