【发布时间】:2017-04-24 10:59:20
【问题描述】:
我正在使用 CakePHP 3.4
我有一个users 模型和具有username、email、mobile、name 和password 的列。 username、email 和 mobile 字段有一些验证规则,包括所有三个都是唯一值。
我正在使用 Ajax 调用更改字段值来验证具有自定义函数的字段,例如 ajaxValidateUsername(),它手动检查所有验证规则,因此模型中指定的验证规则没有被使用。
是否可以使用 ajax 对特定字段进行验证并返回 Users 模型中验证规则中指定的错误消息?
到目前为止,我已经在 `ajaxValidateUsername() 中实现了这一点,并从文档中进行了一些修改
$validator = new Validator();
$errors = $validator->errors($this->request->getData('username'));
但是,它不起作用。
【问题讨论】:
-
为什么不进行正常的修补并返回实体的错误呢?更干净,与当前的蛋糕方式一致。
-
我认为这将验证所有设置为
notEmpty的字段,因为其余字段可能是空的那一刻我只想验证一个字段 -
Cakephp 3.x 允许您动态创建验证对象。如果您只需要验证 1 个字段,我会将您的 ajax 指向一个为该字段构建验证器并根据规则验证数据的操作。 book.cakephp.org/3.0/en/core-libraries/…
-
@AnujTBE 您是否向新实例化的验证对象添加了任何规则?例如
$validator->notEmpty('username', 'Please fill this field')在调用errors()方法之前? -
我需要在控制器中重新实例化吗?我已经向
UsersTable.php添加了验证规则,只想为特定列调用它们
标签: ajax validation cakephp cakephp-3.4