I tillegg tror jeg også at du i de første dagene av Laravel -applikasjonen bør være fokusert på å bygge funksjonene og koding. Når du begynner å løpe inn i problemer og faktisk begynner.
99% av tiden vil du bruke veltalende metoder for å ringe databasesamtaler, og noen ganger viser den enkle ruten du vil ta, og viser problemer nedover linjen.
Orm som veltalende er rett og slett fantastisk, og det vil støtte deg helt til slutten.
Tenk deg at du har bygget søknaden din i noen tid nå, og at du vil refaktorere noen av samtalene dine for å gjøre dem litt raskere. La oss gå gjennom et eksempel på hvordan du kan bli med på spørsmål for å få samme resultat, på kortere tid.
Problem
Tenk på et eksempelkode nedenfor, som bruker Bruker og Organisasjon Tabell for å returnere brukernavnet.
$ bruker = bruker :: finn ($ user_id);Kodeeksemplet ovenfor er enkelt nok til å forstå, men det bruker to separate anrop til databasen. Den andre samtalen er åpenbart pålitelig av den første, og derfor må vi vente på at den første skal avsluttes før vi kan komme til den neste.
Løsning
La oss forbedre dette kodeeksemplet ved å kombinere begge forespørslene til en enkelt spørring.
$ user_with_organization = bruker :: hvor ('id', $ user_id)Nå, det vi nettopp har gjort ovenfor?
1. For det første er vi målrettet mot brukeren basert på $ user_id
, nøyaktig den samme spørringen som den første.
2. Deretter blir vi med i resultatene med organisasjonstabellen ved hjelp av brukerens tabell Fyll venstre sammenføyningsspørsmål
3. Første spørring tok tak i brukermodellen som gir oss tilgangen til Organisasjon_id
Egenskap.
4. Vi velger bruker -ID og organisasjonsnavnet.
5. Til slutt bruker vi den første () metoden, som sikrer at når den først finner en enkelt organisasjon som tilfredsstiller kravet, vil den returnere organisasjonsnavnet umiddelbart.
Hvordan venstre Join fungerer
Når du har to spørsmål og du vil bli med på den andre, betyr det at sluttresultatet ditt vil være et resultat av din første spørring, der noen av resultatene kan motta noe samsvar med den andre spørringen og ha noen ekstra data med dem.
Det er det. Nå har du en bedre forståelse av hvordan venstre Join fungerer. Bruk den til å kombinere spørsmål som er relatert til en enkelt forespørsel til databasen. Det ser ganske enkelt ut, men å bruke den samme metoden kan hjelpe deg med å optimalisere de mest komplekse spørsmålene som omhandler flere tabeller.
Hvis du har noen kommentarer eller forslag, kan du gjerne kontakte meg.