$where = 'itemTypeId=:myTypeId AND itemConfId=:myConfId AND itemSizeId=:mySizeId';
$params = array(':myTypeId'=>$this->itemTypeId,
":myConfId"=>$this->itemConfId,
":mySizeId"=>$this->itemSizeId
);
// In base di modifica devo permettere di salvare il record se la tripla è presente in QUESTO record
if (!$this->isNewRecord) {
$where .= " AND id!=:myId";
$params [":myId"] = $this->id;
}
$item = $this->model()->find($where, $params);
Notate che ho dovuto inserire un if (!$this->isNewRecord) ?
Praticamente in fase di creazione devo, ovviamente verificare che NON esista in tabella un'altra tripla identica.
Anche in fase di modifica devo fare la verifica, ma in questo caso mi da un falso errore, perchè il record attuale, che è in modifica, ha proprio quella tripla, quindi devo escludere l'id del record corrente da quelli che matchano.
Esiste un'altra soluzione ?
Se lascio AND id!=$this->id , in fase di salvataggio NON SO PERCHè ma il controllo passa anche se la tripla esiste.
A cosa è dovuto ?

Help















