我刚刚下载了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'
)
);
正在验证用户名字段,但省略了省号。它能是什么?
答案 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'
)
);