J'ai un formulaire d'inscription dans lequel les utilisateurs peuvent remplir deux adresses e-mail (email1 & email2). L'exigence du marketing est qu'ils doivent être uniques (uniques comme si nous avions 10 utilisateurs, alors il y aurait 10 * 2 = 20 adresse e-mail unique).cakephp estUnique pour 2 champs?
Le système est déjà construit sur cakephp, ce que j'aimerais savoir, est-ce qu'il y a quelque chose de similaire à la fonction isUnique (unique dans un domaine) qui peut le faire dès la sortie de la boîte? Ou suis-je condamné à coder ceci moi-même? Merci d'avance.
EDIT: construit sur l'exemple de Richard, cela a fonctionné pour moi:
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);
}
Notez que les nouvelles versions de CakePHP2.x supportent un tableau pour http://book.cakephp.org/2.0/fr/models/data-validation.html#Model::Validation::isUnique pour autoriser plusieurs champs par défaut à présent. – mark