1
    //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”,则会给出错误。

这里的任何建议都会很棒。

谢谢

4

1 回答 1

4

您可以在模型上创建自定义验证规则,如下所示;

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',
);
于 2013-03-23T14:54:42.217 回答