Ho la seguente regola nel mio BlockedTable.phpCakePHP 3 isUnique multipla che consente NULL duplicare
public function buildRules(RulesChecker $rules)
{
$rules->add($rules->isUnique(['date', 'time']),
['message' => 'unique error']);
return $rules;
}
Fino ad ora questo ha funzionato bene - se cerco di salvare un nuovo record con una data e ora già esistenti , mi impedisce di salvare.
Tuttavia, se il mio orario è NULL
, ad esempio la voce in basso;
╔════╦══════════════╦═══════╗
║ ID ║ Date ║ Time ║
╠════╬══════════════╬═══════╣
║ 1 ║ 22/08/1985 ║ NULL ║
╚════╩══════════════╩═══════╝
La regola consente comunque di salvare una nuova voce con gli stessi dati. Quindi, se provo a salvare $date = 22/08/1985
e $time = NULL
, viene salvato e c'è un record duplicato nel mio database. Mi sarei aspettato che fosse fallito a causa della regola precedente?
Perché sta succedendo? E come posso evitare voci duplicate sui valori NULL
?
Grazie in anticipo per il vostro aiuto.
Grazie per la risposta NDM in profondità, io considero le mie opzioni e nel frattempo creare un biglietto di valorizzazione . – JayIsTooCommon
E ha appena fatto regola personalizzata, e funziona perfettamente. Grazie ancora – JayIsTooCommon