CakePHP,仅更改beforeValidation中特定规则的数据

时间:2011-07-23 02:31:53

标签: php cakephp

我将IP保存为数据库中的数值。当我获取它时,我使用带有和INET_NTOA SQL表达式的虚拟字段。

我希望IP是唯一的,因此我在模型中使用isUnique Validation规则。问题是此规则根据数据库中的数值验证IP地址。

有没有办法可以在验证之前修改此规则的字段值?另一个规则是“ip”,它需要IP作为地址而不是数值。

1 个答案:

答案 0 :(得分:0)

我建议你创建一个custom validation rule来检查转换的 IP是否是唯一的。

…
'rule' => 'ipIsUnique',
…

// customize as needed
public function ipIsUnique($data) {
    return $this->isUnique(array_map('ip2long', $data));
}