//View
echo $this->Form->input('adult', array('options' => array('0'=>'0', '1'=>'1', '2'=>'2', '3'=>'3', '4'=>'4'), 'default' => '0'));
echo $this->Form->input('concession', array('options' => array('0'=>'0', '1'=>'1', '2'=>'2', '3'=>'3', '4'=>'4'), 'default' => '0'));
//Model
...
我遇到的问题是,我知道如何为单个字段编码验证,但在这里我想比较'成人'和'让步'字段在一起,并给出一个错误,如果它们的总和小于'1'。
这里有什么建议就太好了。
谢谢
您可以在您的模型上创建一个自定义的验证规则,就像这样;
function atLeastOneSelected($data)
{
if (empty($this->data[$this->alias]['adult']) && empty($this->data[$this->alias]['concession'])) {
// both fields are empty
return false;
}
return true;
}
在验证数组中;
public $validate = array(
'adult' => 'atLeastOneSelected',
'concession' => 'atLeastOneSelected',
);