您好我有一张表,其中三个字段的组合为unique
。我想对这个组合进行重复检查。表看起来像
我知道如何验证单个字段,但是如何验证组合是不知道的。要验证一个字段,我使用以下函数
public function isValid($data) {
// Options for name field validation
$options = array(
'adapter' => Zend_Db_Table::getDefaultAdapter(),
'table' => 'currencies',
'field' => 'name',
'message'=> ('this currency name already exists in our DB'),
);
// Exclude if a id is given (edit action)
if (isset($data['id'])) {
$options['exclude'] = array('field' => 'id', 'value' => $data['id']);
}
// Validate that name is not already in use
$this->getElement('name')
->addValidator('Db_NoRecordExists', false, $options
);
return parent::isValid($data);
}
是否有人会指导我如何验证组合字段的重复?
答案 0 :(得分:1)
据我所知,目前还没有准备好使用验证器。您可以自己编写,也可以使用三个条件(每个字段一个)对SQL查询进行检查。
答案 1 :(得分:0)
您必须对zend表单的name元素应用验证。 以下是在名称字段上添加验证的代码。
$name->addValidator(
'Db_NoRecordExists',
true,
array(
'table' => 'currencies',
'field' => 'name',
'messages' => array( "recordFound" => "This Currency Name already exists in our DB") ,
)
);
你必须设置所需的真实。