我试图创建一个IP地址验证规则CakePHP的验证规则,下面的代码是不工作:的IP地址
$validator
->add('ipfirst', 'validIp', ['rule' => 'ip', 'message' => 'Ip is not valid!'])
->requirePresence('ipfirst', 'create')
->notEmpty('ipfirst');
如果任何人都可以点我在正确的指导,这将太棒了,谢谢!
我试图创建一个IP地址验证规则CakePHP的验证规则,下面的代码是不工作:的IP地址
$validator
->add('ipfirst', 'validIp', ['rule' => 'ip', 'message' => 'Ip is not valid!'])
->requirePresence('ipfirst', 'create')
->notEmpty('ipfirst');
如果任何人都可以点我在正确的指导,这将太棒了,谢谢!
已经有在蛋糕3.X IPv4和IPv6验证方法:-)
http://api.cakephp.org/3.3/class-Cake.Validation.Validator.html#_ipv4 & http://api.cakephp.org/3.3/class-Cake.Validation.Validator.html#_ipv6
使用它,像这样:
$validator
->ipv4('ipfirst', 'Please enter ip address')
->requirePresence('ipfirst', 'create')
->notEmpty('ipfirst');
当然变化对ipv6如果这就是你想要的:P
You can add custom validation rule with regular expression like:
// you can change regular expression according to you requirement.
$validator
->notEmpty('ipfirst', 'Please enter ip address')
->add('ipfirst','validIp',[
'rule'=> function($value){
if (preg_match('/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/', $value)) {
return true;
}
return false;
},
'message'=>'Please enter a valid ip address.',
]);
没有理由让哟我们自己的验证规则,当它内置! :-) – Spriz
Thx,但仍然不工作:( – fmt
然后我会说你的问题是在其他地方,我们有这个工作在生产:-) – Spriz
你可以告诉我们当你做POST/PUT时产生的请求数据吗? – Spriz