【问题标题】:CakePHP 3.X: Difference buildSchema X buildValidatorCakePHP 3.X:差异 buildSchema X buildValidator
【发布时间】:2017-03-23 21:09:12
【问题描述】:

我正在学习 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 实例。

我很困惑,因为如果您查看文档中的示例,您会看到他正在验证输入长度以及第二种方法中的类似内容,但在第一种方法的描述中,他说您可以这样做也是?

是否可以向我解释它们之间的真正区别并给我一个例子?

谢谢!

【问题讨论】:

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

标签: php validation cakephp cakephp-3.0


【解决方案1】:

Database Schema

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

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

Data Validation

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

验证是检查您放入数据库中的数据,以及描述数据结构的架构的过程。

结论

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

此外,文档对此也很清楚,我认为您只是误解了它:您可以定义字段类型、长度和精度。验证某事。 :)

【讨论】:

    猜你喜欢
    • 2020-07-08
    • 2021-12-18
    • 2016-05-01
    • 2021-12-31
    • 2017-08-10
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多