cakephp没有验证选择字段

时间:2013-02-10 01:40:14

标签: validation cakephp

我刚刚下载了cakephp版本2.3.0的新副本,我正在尝试验证我刚刚创建的表单的选择字段:

echo $this->Form->input('province_id', array('empty' => '- select -', 'options' => $options));
echo $this->Form->input('username');

验证:

public $validate = array(
    'username' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'A username is required'
        )
    ),

    'province_id' => array(
        'rule' => 'notEmpty',
        'message' => 'Select something'
    )
);

正在验证用户名字段,但省略了省号。它能是什么?

3 个答案:

答案 0 :(得分:2)

你应该这样写:

public $validate = array(
    'username' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'A username is required'
        )
    ),
    'province_id' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'Select something'
        )
    )
);

答案 1 :(得分:0)

最好迟到,不要试试这个:

public $validate = array(
    'username' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'A username is required'
        )
    ),
    'province_id' => array(
        'required' => array(
            'rule' => array('myOwnValidationRule'),
            'message' => 'Select something'
        )
    )
);

function myOwnValidationRule($data)
{ 
    if($data["province_id"] != 'empty')
    {
        return true;
    }
}

答案 2 :(得分:0)

看起来您的表单助手声明没问题。

我对Cake的经验表明,当你开始混合语法时,验证很麻烦(你的一个字段有一个嵌套数组,而另一个字段没有)。我确信有什么押韵或理由发生了什么,但我并没有真正深入研究,通常只是试错。

试试这个:

public $validate = array(
    'username' => array(
        'rule' => 'notEmpty',
        'required' => true,
        'message' => 'A username is required'
    ),

    'province_id' => array(
        'rule' => 'notEmpty',
        'required' => true,
        'message' => 'Select something'
    )
);