È (era?) considerato best practice quando si tratta di programmazione web per consentire al database di eseguire il "sollevamento pesante", quando possibile. Ad esempio, ho un elenco di contatti e consiste di molti indirizzi e nomi di posta elettronica. Ogni email deve essere univoca, quindi una soluzione potenzialmente negativa per un modello di record attivo (Eloquent) è in questo caso:
public function addEmail($name, $address)
{
if ($this->where('name', $name)->where('address', $address)->count() > 0)
{
throw new \Exception("Name and email already exists!");
}
// perform add new logic
}
Se quello che ho capito è corretto, non dovrei farlo - che le entità dovrebbero essere semplici oggetti di dati, e incapaci di fare chiamate al DB.
In tal caso, come dovrei applicare quel bit di validazione? Utilizza un servizio o carica tutti gli indirizzi per ContactList
o spostalo da qualche altra parte (un servizio AddNewEmailToConactList
?)