beforeSave函数之后的CakePHP 2.x验证

beforeSave函数之后的CakePHP 2.x验证,php,cakephp,Php,Cakephp,我试图在CakePHP中将验证规则添加到我的模型中,以检查ip地址是否唯一。问题是,我正在将数据库中的ip地址保存为无符号int,但用户将其作为字符串输入。为此,我使用beforeSave函数将ip地址更改为要保存的int值。有没有办法让isUnique规则在beforeSave函数之后运行? 目前,我的验证规则如下所示 public $validate = array( 'ip_address' => array( 'notEmpty' => arr

我试图在CakePHP中将验证规则添加到我的模型中,以检查ip地址是否唯一。问题是,我正在将数据库中的ip地址保存为无符号int,但用户将其作为字符串输入。为此,我使用beforeSave函数将ip地址更改为要保存的int值。有没有办法让isUnique规则在beforeSave函数之后运行? 目前,我的验证规则如下所示

    public $validate = array(
    'ip_address' => array(
        'notEmpty' => array(
            'rule' => 'notEmpty',
            'message' => 'You must enter an IP address'
        ),
        'unique' => array(
            'rule' => 'isUnique',
            'required' => 'create',
            'message' => 'This IP address already exists'
        )
    )
);

在验证之前在中执行此操作:


它会很好的工作。顺便问一下,为什么是int而不是string?int可能会为您提供重复项。我不知道将ip转换为int的代码,所以我可能错了。

谢谢。我没有想到之前的验证回调。我使用php函数ip2long()和long2ip()将数据保存在数据库中。
$this->data['alias']['ip_address'] = str_replace('.', '', $this->data['alias']['ip_address'];