ajax 验证 cakephp 3 中的特定列
ajax validate specific column in cakephp 3
我正在使用 CakePHP 3.4
我有一个 users
模型和包含 username
、email
、mobile
、name
和 password
的列。 username
、email
和 mobile
字段有一些验证规则,包括所有三个都是唯一值。
我正在使用 Ajax 调用更改字段值来验证带有自定义函数的字段,例如 ajaxValidateUsername()
,它会手动检查所有验证规则,从而检查模型中指定的验证规则未被利用。
我可以使用 ajax 和 return 模型验证规则中指定的错误消息对特定字段进行验证吗?
到目前为止,我已经在 `ajaxValidateUsername() 中实现了这个,并根据文档
进行了一些修改
$validator = new Validator();
$errors = $validator->errors($this->request->getData('username'));
但是,它不起作用。
在 CakePHP 3.x 中,您可以创建不同的验证集并在修补实体时使用它们。见 docs.
因此您可以在您的控制器中创建一个只验证某些属性的方法。
class UsersTable extends Table
{
public function validationUsername($validator)
{
$validator
->add('username', 'notEmpty', [
'rule' => 'notEmpty',
'message' => __('Please specify a username.'),
])
->add(…);
return $validator;
}
}
并在您的控制器中使用此验证方法。
$entity = $this->Users->newEntity(
$this->request->getData(),
['validate' => 'username']
);
$success = !$entity->errors();
我正在使用 CakePHP 3.4
我有一个 users
模型和包含 username
、email
、mobile
、name
和 password
的列。 username
、email
和 mobile
字段有一些验证规则,包括所有三个都是唯一值。
我正在使用 Ajax 调用更改字段值来验证带有自定义函数的字段,例如 ajaxValidateUsername()
,它会手动检查所有验证规则,从而检查模型中指定的验证规则未被利用。
我可以使用 ajax 和 return 模型验证规则中指定的错误消息对特定字段进行验证吗?
到目前为止,我已经在 `ajaxValidateUsername() 中实现了这个,并根据文档
进行了一些修改$validator = new Validator();
$errors = $validator->errors($this->request->getData('username'));
但是,它不起作用。
在 CakePHP 3.x 中,您可以创建不同的验证集并在修补实体时使用它们。见 docs.
因此您可以在您的控制器中创建一个只验证某些属性的方法。
class UsersTable extends Table
{
public function validationUsername($validator)
{
$validator
->add('username', 'notEmpty', [
'rule' => 'notEmpty',
'message' => __('Please specify a username.'),
])
->add(…);
return $validator;
}
}
并在您的控制器中使用此验证方法。
$entity = $this->Users->newEntity(
$this->request->getData(),
['validate' => 'username']
);
$success = !$entity->errors();