CakePHP 在模型中使用 OR 条件进行验证

标签 cakephp

我正在开发一个表单,用户可以填写手机号码。或电话号码或两者。所以我想添加验证来做到这一点。

cakephp版本:2.5

'mobile' => array(
        'notEmpty' => array(
                'rule' => 'notEmpty',
                'message'=> 'Please enter mobile'
        )

'telephone' => array(
        'notEmpty' => array(
                'rule' => 'notEmpty',
                'message'=> 'Please enter telephone'
        )

我想在模型中将两者与 OR 条件组合。

最佳答案

首先从这里获取条件行为: Conditional Validation Behavior

将行为添加到您的模型中:

class Something extends AppModel
{
    public $actsAs = array('ConditionalValidation');
}   

按模型定义验证规则:

class Something extends AppModel
{
    public $actsAs = array('ConditionalValidation');

    public $validate = array(
        'telephone' => array('isActive' => array(
            'rule' => 'notEmpty',
            'if' => array('mobile',''),//activate when you don't have mobile
            ),
'mobile' => array('isActive' => array(
            'rule' => 'notEmpty',
            'if' => array('telephone',''),//activate when you don't have mobile
            ),



        );
    );
}   

必须找出两个字段存在的规则是什么

关于CakePHP 在模型中使用 OR 条件进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30749218/

相关文章:

php - 如何将标签添加到 "file upload"输入?

xml - CakePHP 生成 XML

validation - CakePHP 验证 nonBlank 失败字段是否为空或 !Empty

model-view-controller - CakePHP 中的动态布局

php - 使用 cakephp 按日期分组

php - 我如何从 cake php(cake 2) 中的两个表中选择记录

cakephp - 使用 CakePHP 2.0 触发 404 错误?

regex - 在 CakePHP .htaccess 中强制使用 SSL+WWW

CakePHP:验证用户是否超过 13 岁

cakephp - 从自定义目录加载供应商 Assets - cakephp 3