本文介绍了至少必须填写一个字段,cakephp验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有4个可选字段,但至少必须填写1个字段(任何字段)?
I have 4 optional fields, but at least 1 field (any field) must be filled?
有什么简单的方法吗?
推荐答案
A 是必经之路!
var $validate = array(
'myField1' => array('atLeastOne'),
'myField2' => array('atLeastOne'),
'myField3' => array('atLeastOne'),
'myField4' => array('atLeastOne')
);
function atLeastOne($data) {
return !empty($this->data[$this->name]['myField1'])
|| !empty($this->data[$this->name]['myField2'])
|| !empty($this->data[$this->name]['myField3'])
|| !empty($this->data[$this->name]['myField4']);
}
您还可以传入要比较的所有字段的额外参数,
You could also pass in extra parameters of all the fields you want to compare and make a more general function out of it.
var $validate = array(
'myField1' => array('atLeastOne', 'myField2', 'myField3', 'myField4'),
...
);
// just pulled out of thin air (i.e. untested)
function atLeastOne($data) {
$args = func_get_args(); // will contain $data, 'myField2', 'myField3', ...
foreach ($args as $name) {
if (is_array($name)) {
$name = current(array_keys($name));
}
if (!empty($this->data[$this->name][$name])) {
return true;
}
}
return false;
}
这篇关于至少必须填写一个字段,cakephp验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!