Sì, sicuramente.
Ma io continuo a pensare che il miglior modo sia lasciare al db il controllo. Un ulteriore controllo sul Model sarebbe ridondante e, in quanto tale, potrebbe portare a comportamenti contraddittori nel caso si decida di cambiare la logica e ci si dimentichi di aggiornare il Model. Senza contare che la complessità del codice per il controllo della clausola UNIQUE è di ordine n e, probabilmente, viste le prestazioni di PHP rispetto a quelle del codice nativo di MySQL, con tabelle mediamente popolate si avrebbero rallentamenti visibili ad ogni salvataggio.
La mia idea è che il Model dovrebbe occuparsi solo della invalidazione di un campo
Del resto, per sapere dal Db quale sia stato esattamente l'errore, basta un
$db = ConnectionManager::getDataSource('default');
$db->lastError();
Dopo di che si può lanciare un invalidate().
Last edited by arialdomartini (25-11-2008 17:09:11)