/* 自动验证规则 */
protected $_validate = array(
array('mac','require','mac必须填写!'),
array('mac','','mac名称已经存在!',self::MUST_VALIDATE,'unique',self::MODEL_BOTH),
array('mac','12','mac长度错误!',self::MUST_VALIDATE,'length',self::MODEL_BOTH),
);
/* 自动完成规则 */
protected $_auto = array(
array('uptime','time',self:: MODEL_BOTH,'function'),
array('mac','format_mac',self:: MODEL_BOTH,'callback'),
);
public function format_mac(){
$mac = I('post.mac');
$mac = str_replace(":","",$mac); //去掉mac地址冒号
$mac = trim($mac ); //去前后空格
return $mac;
}我要实现:用户提交mac地址(04:A1:51:90:AF:AA).自动去掉冒号(04A15190AFAA),
然后验证mac长度是不是12位.
验证mac地址在数据库中是不是唯一.
现在问题是
只要我一提交mac=04:A1:51:90:AF:AA
会自动格式化没有冒号格式提交.
然后我再提交一次 mac=04:A1:51:90:AF:AA
不会报错,能正常保存.
数据库中有两个相同的04A15190AFAA,实际上自动验证就没用了.
ps:我提交mac=04A15190AFAA 已经格式化好的序列,就会提示mac已经存在

请问我这个是什么问题?
最佳答案