Problema
ha, con E dove ha a volte può essere confuso per gli sviluppatori per principianti. Diamo qualche prospettiva su cosa significhi ciascuno di questi
Soluzione
con() è generalmente usato con carico desideroso, che è un modo rapido per tirare i modelli correlati. Fondamentalmente, significa che, insieme al modello principale, Laravel precaricherà le relazioni elencate. Questo è vantaggioso quando è necessario caricare ulteriori dati e si desidera evitare di fare N+1 DB cattive pratiche. Con un caricamento desideroso, si esegue solo una query DB aggiuntiva anziché potenzialmente centinaia di domande aggiuntive.
Esempio:
Utente> Hasmany> OrganizzazioneHa
ha() viene utilizzato per filtrare il modello di selezione in base alla relazione selezionata. È fondamentalmente un metodo dove per le relazioni. Se usi semplicemente ha ("organizzazione"), Usando lo stesso esempio di utenti e organizzazioni, significherebbe che attirerà tutti gli utenti che hanno almeno un'organizzazione nel loro "portafoglio".
Esempio:
Utente> Hasmany> OrganizzazioneDove ha
Wherehas () è quasi lo stesso di ha(). Ti consente solo di specificare i filtri aggiuntivi per il controllo del modello correlato.
Esempio:
Utente> Hasmany> Organizzazione