【发布时间】: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