CakePHP数据验证2输入字段

CakePHP数据验证2输入字段,php,html,cakephp,Php,Html,Cakephp,我遇到的问题是,我知道如何为单个字段编写验证代码,但这里我想将“成人”字段和“特许”字段一起比较,如果它们的总和小于“1”,则给出一个错误 这里有什么建议都可以 谢谢您可以在您的模型上创建一个自定义的验证规则,类似这样 //View echo $this->Form->input('adult', array('options' => array('0'=>'0', '1'=>'1', '2'=>'2', '3'=>'3', '4'=&

我遇到的问题是,我知道如何为单个字段编写验证代码,但这里我想将“成人”字段和“特许”字段一起比较,如果它们的总和小于“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

    ...
在验证数组中

function atLeastOneSelected($data)
{
    if (empty($this->data[$this->alias]['adult']) && empty($this->data[$this->alias]['concession'])) {
        // both fields are empty
        return false;
    }
    return true;
}

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

    //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

    ...
在验证数组中

function atLeastOneSelected($data)
{
    if (empty($this->data[$this->alias]['adult']) && empty($this->data[$this->alias]['concession'])) {
        // both fields are empty
        return false;
    }
    return true;
}

很高兴我能帮忙!您可能需要检查我的示例是否在所有情况下都有效(例如,在模型中保存其他字段而不更新这些字段时),但基于此示例,我认为您将能够创建适当的验证规则。是的,它工作得非常好,我只是对其进行了调整,以显示自定义错误消息,但它的核心工作非常出色。谢谢祝你的项目好运!哦,我对我的例子做了一个小小的修改;我使用的是
$this->name
,但将其更改为
$this->alias
,这样,如果您使用别名附加模型,它也可以工作:)很高兴我能提供帮助!您可能需要检查我的示例是否在所有情况下都有效(例如,在模型中保存其他字段而不更新这些字段时),但基于此示例,我认为您将能够创建适当的验证规则。是的,它工作得非常好,我只是对其进行了调整,以显示自定义错误消息,但它的核心工作非常出色。谢谢祝你的项目好运!哦,我对我的例子做了一个小小的修改;我使用的是
$this->name
,但将其更改为
$this->alias
,这样,如果您使用别名附加模型,它也可以工作:)