Tengo un formulario de registro en el que los usuarios pueden completar dos direcciones de correo electrónico (correo electrónico1 & correo electrónico2). El requisito de marketing es que deben ser únicos (únicos como si tuviéramos 10 usuarios, luego habría 10 * 2 = 20 direcciones de correo electrónico únicas).cakephp isUnique para 2 campos?
El sistema ya está basado en cakephp, entonces, ¿qué me gustaría saber es si hay algo similar a la función isUnique (única en un campo) que pueda hacer esto desde el primer momento? ¿O estoy condenado a codificar esto yo mismo? Gracias por adelantado.
EDIT: construida en el ejemplo de Richard, esta trabajado para mí:
function checkUnique($data, $fields) {
if (!is_array($fields)) {
$fields = array($fields);
}
foreach($data as $key) {
$checks = $key;
}
if (empty($checks)) {
return true; //allow null
}
foreach($fields as $key) {
$tmp[$key] = $checks;
}
if (isset($this->data[$this->name][$this->primaryKey])) {
$tmp[$this->primaryKey] = "<>".$this->data[$this->name][$this->primaryKey];
}
return $this->isUnique($tmp);
}
Tenga en cuenta que las versiones más recientes de CakePHP2.x admiten una matriz para http://book.cakephp.org/2.0/en/models/data-validation.html#Model::Validation::isUnique para permitir múltiples campos de manera predeterminada ahora. – mark