CakePHP客户端表单验证在哪里?

时间:2016-05-23 00:10:50

标签: php forms validation cakephp-3.0

CakePHP会自动为我做一些客户端表单验证 - 检查字段是否为空或电子邮件字段实际上是否为电子邮件地址。不正确的字段会得到一个很好的小下拉列表,并显示错误消息。

这在哪里管理?我想在confirm_email字段中添加这种验证。

2 个答案:

答案 0 :(得分:0)

$这 - >形状配合>输入( '文本框',阵列( '必要'=>真));

会做一些HTML需要的字段

答案 1 :(得分:0)

我怀疑你在谈论HTML5 Form Validation

在这种情况下,由于输入中的required="required"type="email"等属性,您可以看到此类下拉列表。

可以在src/Model/Table/SomeTable.php个文件中管理验证。请参阅下面的示例UsersTable.php

class UsersTable extends Table {

public function validationDefault(\Cake\Validation\Validator $validator) {
    $validator->add('email', [
        'email' => [
            'rule' => array('email', true),
            'message' => __('Please, set valid email address')
        ]
    ])
    ->add('password', [
        'length' => [
            'rule' => ['minLength', '8'],
            'message' => __('Password must have at least 8 characters'),
        ]
    ])
    ->add('password_confirmation', [
        'length' => [
            'rule' => ['minLength', '8'],
            'message' => __('Password must have at least 8 characters')
        ],
        'compare' => [
            'rule' => ['compareWith', 'password'],
            'message' => __('Passwords should be the same'),
        ]
    ])
    return $validator;
}

}

请注意passwordpassword_confirmation。您可以使用规则compareWith以类似方式解决问题。

另见validations的官方文档。