CakePHP验证取决于其他字段

我想知道Cake PHP验证规则是否可以根据另一个来验证一个字段.

我一直在读documentation about custom validation rules,但$check param只包含要验证的当前字段的值.

例如.我想仅在new_password字段不为空的情况下定义verify_password字段. (以防万一

我可以用Javascript来做,但是我想知道是否可以直接用CakePHP.

当您验证模型上的数据时,数据已经是 set().这意味着您可以在模型的$data属性上访问它.下面的示例检查我们验证的字段,以确保它与验证规则中定义的其他字段(例如密码确认字段)相同.

验证规则将如下所示:

var $validate = array(
    'password' => array(            
        'minLength' => array(
            'rule' => array('minLength',6),'message' => 'Your password must be at least 6 characters long.'
        ),'notempty' => array(
            'rule' => 'notEmpty','message' => 'Please fill in the required field.'
        )
    ),'confirm_password' => array(
        'identical' => array(
            'rule' => array('identicalFieldValues','password'),'message' => 'Password confirmation does not match password.'
        )
    )
);

我们的验证函数然后查看传递的字段的数据(confirm_password),并将其与规则中定义的(传递给$compareFiled)的数据进行比较.

function identicalFieldValues(&$data,$compareField) {
    // $data array is passed using the form field name as the key
    // so let's just get the field name to compare
    $value = array_values($data);
    $comparewithvalue = $value[0];
    return ($this->data[$this->name][$compareField] == $comparewithvalue);
}

这是一个简单的例子,但您可以使用$this->数据来执行任何您想要的操作.

您的帖子中的示例可能如下所示:

function requireNotEmpty(&$data,$shouldNotBeEmpty) {
    return !empty($this->data[$this->name][$shouldNotBeEmpty]);
}

规则:

var $validate = array(
  'verify_password' => array(
    'rule' => array('requireNotEmpty','password')
  )
);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


如何选择合适的 C++ Web 开发框架?
利用 C++ 框架构建高并发 Web 应用的策略
用 C++ 框架开发跨平台图形应用程序
golang框架中安全编码实践的最佳指南是什么?
golang框架与其他语言框架在设计理念上的区别有哪些?
C++ 图形框架与其他语言框架的比较
C++ 框架与其他 Web 开发框架的对比分析
使用 C++ 框架构建大型项目最佳实践
C++ 框架如何提高大型项目开发效率
C++ 框架中依赖注入的持续集成与部署工具
如何与社区协作和贡献到自定义 Golang 框架?
C++ 框架在大型项目中如何实现模块化开发
使用 C++ 框架开发跨平台 Web 应用
C++ 框架在大型项目中的优缺点
golang框架在性能上的优势体现在哪些方面?
C++ 框架在嵌入式系统内存优化中的优势
golang框架在人工智能与机器学习中的作用
如何扩展 Golang 框架以支持特定功能?
如何利用 Go Modules 和依赖项管理来自定义 Golang 框架?
Golang 框架中的性能优化技巧