CakePHP数据验证2输入字段


CakePHP Data Validation 2 Input Fields

    //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',
);