>> Så en av dessa, de finaste funktionerna
av ramen för Laravel är den vältalige ORM
och som David påpekade, en ORM Ett ändamål relations mapper
vilket gör det möjligt att kartlägga uppgifter bas rader till objekten i php
och gör att du kan skapa associationer
mellan dessa olika tabeller riktigt enkelt utan att behöva
att skriva en hel del SQL under huven
och ger dig en riktigt trevlig syntax för sökning
för en enskild post.
Så istället för att säga, väljer, stjärna, från kurser
där något annat du skulle säga, kurser, hitta [ohörbart]
eller kurser hitta något av de kurser som du söker efter
och det skulle avgöra vad SQL tänkt att skrivas
och köra den på rätt sätt för dig och ge allt tillbaka till dig
i ett objekt som Du kan sedan visa
på skärmen verkliga lätt.
Så det sätt som den vältalige RM fungerar är att ... konventionen
att den använder är att om du har en databas tabell
vilken är pluralized så till exempel, kurser,
du vill skapa en klass i samtalet modeller mappen kurs
och det är allt du skulle behöver göra är att säga,
klass banan sträcker talande och det
under huven automatiskt förut
att det som i tabellen heter, vad ID är,
så det finns en automatisk uppräkning ID och det finns en
som kommer med Laravel av default det kallas användare
och den använder vissa förskott funktioner som kallas gränssnitt,
vilket vi kommer inte att gå över,
men du kan se klass användaren, sträcker vältalig,
och du kan duka namn
om du inte följer konventionen
av pluralized ... ha ett plural tabellnamn
och en sällsam klassnamn.
Men vi ska gå vidare skapa ett för givet exemplet
från tidigare, ska vi gå vidare och skapa en för kurser.
Så vi ska göra kurs dot php
och göra klass kurs sträcker talande.
Och så ska jag hoppa i php my admin
och faktiskt nytt namn denna tabell till kurser.
Så nu har jag en kurs bord med samma exempel uppgifter
från den första katalogen som David hade nämnt och nu
att denna kurs är
i modellen katalog vi kan gå vidare och säga, naturligtvis,
begränsa 10 så bara vi vill få 10 poster,
få och vi säger detta är banor.
Och så nu är vi kommer att gå vidare
och låt oss skapa en bättre bild för att visa det här faktiskt.
Så jag faktiskt skapade en blad mall tidigare
och jag ska bara gå vidare och kopiera den hit bara
att spara, spara några minuters tid.
[Bakgrundsljud]
Okej, så jag skapade en,
i korgvyn jag skapade kurser dot blad
och så ska jag göra vy göra kurser, och jag ska
att passera en variabel kurser med det ... faktiskt det inte händer
att fungera, bara en sekund, kurser titel.
Okej, så det inte fungerade eftersom det står åtkomst nekad
för användar rutt vid lokala värden.
Så kan någon berätta för mig vad de tror kan vara problemet här?
Så problemet är att jag aldrig berättade Laravel vad ... vem jag är
att försöka tillgång databasen,
det gör det inte automatiskt vet att jag kan
att få tillgång till databasen Jag försöker att fråga.
Så i config-mappen
att jag hade nämnt tidigare det finns en databas dot php
fil och här måste vi säga att vi är användarnamn, jharvard
och lösenord crimson och nu om vi går vidare och göra
som okända data bas, databas.
Så databasen att vi försöker
att plocka kallas banor [ohörbart]
och den här gången fungerade.
Så vad det gör här det är låt mig gå vidare
och hoppa tillbaka till styrenheten.
Så jag gjorde kurser, begränsa tio, får,
så jag sa bara att jag bara är intresserad av 10 rader i databasen,
hämta dem för dem, och sätta dem i detta kurser variabel.
Så här kursens variabel är nu ett ändamål
vilken innehåller den olika kolumner
som jag kan komma åt riktigt lätt i mallen.
Så jag för varje kurs som Naturligtvis ... gå vidare och zooma in,
och jag säger bara kurs titel eller kursbeskrivningen
och det går framåt och utgångar oavsett databas raden
är där.
Så som ni kan se sin mycket enklare men lätt att resonera
med än att behöva skriva ut SQL för hand
och sedan räkna ut hur man, hur man kan kartlägga den till ett objekt
men när det blir riktigt mäktig är då, som David sort
av hade nämnt tidigare, när du startar
att ha olika tabeller som du vill associera
med andra, via främmande nycklar,
du kan ha dessa objekt göra grovjobbet
av den frågande och räkna ut vilka par upp med vad och hur
att gå vidare och göra det.
Så om vi tittar på ... låt oss gå vidare
och hoppa tillbaka hit verkligen snabb, så databas config hur det fick
i det [ohörbart] hoppa över detta för nu.
Så de olika typerna i min ... olika typer
av relationer som standard vissa av den ... finns det några mer
än detta men dessa är de 4 vanligaste är en har en,
a har många, hör det också, och det hör till relation.
Så kan du slags tänka på en har en så,
du vet om du bara har en av någonting,
så i detta fall ett konto, detta är bara riktigt dumbed
ner förenklat exempel system
men ett konto bara har en leverantör i det här fallet.
Så det finns en leverantör ID och en leverantör
så på kontot bord det finns en leverantör-ID
och leverantörer som också har ett ID och det finns bara sorterar
av en ett till ett-förhållande.
En ... det finns en tillhör alltför
så en beställning bara kunde göras av en person,
medan en kund kanske har ett gäng
av order endast ordern tillhör en och samma kund,
du kan inte ha 3 olika folk köper samma sak
i detta exempel.
Och sedan en har många, som sagt kunden har många order
men inte den andra vägen runt och sedan tillhör
för många är det mer avancerad relation
att David gick över tidigare där du sorterar
för samman två tabeller via en intern tabell,
så i detta fall församlingar, delar är en koppling
i församlingarna och delar eller ett exempel
att vi fick tidigare,
kurserna ... den instruktörer anslöt
med en kursledaren gå tabell och i detta fall,
och i Laravel fall,
det faktiskt inte kräver ett primära auto genomförande ID
på kopplingen bordet även om du kan ha en,
det faktiskt inte kräva en eller för det
att arbeta på det sätt den gör.
Så låt oss gå vidare och ställa in sorterings
av några olika objekt baserat på layout av databasen
som vi har just nu och så vi kommer att hålla kurser
som vår bas objekt men vi är kommer att säga att titta
vid databastabellen, Kursen har många möte
så det har många mötestider, den tillhör en avdelning
och det hör till både många instruktörer och krav.
Så det kan finnas flera krav för kursen
men krav kan vara delas av olika kurser.
Så låt oss gå vidare och se om vi kan modellera
att en liten bit med hjälp av de vältaliga modeller
Så du har fått ... låt oss börja med instruktören dot [ohörbart]
så likt tidigare, vi är kommer att gå vidare och säga,
klassinstruktör, sträcker talande
och så detta skulle antar som jag sa tidigare,
att det finns en plural av instruktör instruktörer
och detta är den tabell som den kommer att kartlägga till.
Och nu på kursen, vi ska gå vidare
och säga ... vi ska skapa en metod
så att allmänheten funktion instruktörer,
allmänheten ... ledsen att jag är ... ja de allmänna funktions instruktörer
och det sätt som Laravel uppsättningar
upp relationer är du tillbaka en detta tillhör många instruktör,
så detta säger oss nu att kursen är associerad
med instruktören modellen, det är allt vi behövde göra
för att ställa in detta förhållande och nu när vi är
i denna slinga här kan vi säga, så eftersom det är en har ... det hör
att många relationer där kan en eller flera instruktörer.
Så dess en matris eller det är ett objekt som har mer
än en instruktör på det så vi ska även slinga
hit och säga för varje kursledare som instruktör
och sedan plocka ut den första namn och efternamn,
Jag tror att de är de kolumner så först och sist,
det skulle kunna vara första namn, efternamn.
Så först och sist den är inställd upp i denna kurskatalog
och låt oss gå vidare och se om det gör
så instruktörer ... ja det ser ut som de visar
upp om det inte finns inte en associerad
så i detta fall finns inga instruktörer som räknas
med den kursen, men i alla de övriga fallen du ser en
eller flera instruktörer som definieras i förhållandet.
Så en sak som är en slags en gotcha ibland med Orms
som detta är att du går vidare och definiera en relation
och du tror att okej det är hämtar mina uppgifter på rätt sätt
som jag ser här allt är rendering
på skärmen okej, allt är okej,
den gör allt SQL bakom kulisserna för mig
men vad som händer här är
när den först hämtar kurser den inte vet
att du också kommer att bli söker instruktörer.
Så det hämtar alla kurser för dig och sedan går
för att visa alla dessa data i den, i vyn här
och då blir det på det här för varje kursledare
och det säger okej jag gör inte vet vad instruktörerna är
men låt mig gå och hämta dem
och det gör detta varje enda gången som du ska
genom kursen slingan.
Så varje gång som du är försöker visa en kurs
på skärmen är det slags sent till allt säger jag behöver
att hitta vad de instruktörer är för den här raden
och så det gör n plus en fråga
så det gör dock många loopar du har det gör en annan
fråga, medan detta inte är det mest effektiva sättet att gå
om hämtning och visa dina data.
Så långt att hämta allt up front i Laravel är
att säga kurs med instruktörer begränsa tio get
och nu vet det ser skiljer sig inte bara för ögat
men istället för att göra jag antar att det skulle vara 12 frågor
eller så bakom kulisserna nu det är bara att göra två eller tre.
Så vi kan gå, vi kan fortsätta på det sättet och ställa
upp några mer relationer så det var några
av den andra har många möte.
Så lika vi inrättat en Modellen heter möte,
klass [ohörbart] sträcker talande
och det borde ... allt bör tas om hand här
om vi tittar på tabellen möten det har fått en automatisk uppräkning ID
det är plural så allt skulle fungera om vi försöker
att visa mötena.
Så låt oss gå tillbaka till, vi redan förklarat detta
och det var en ny relation ... förlåt det var en
har [ohörbart] möte, så låt oss titta på mötesbordet
och se vad vi kan vill visa här.
Så låt oss bara visa ... faktiskt Jag har en mall set
för detta, jag ska bara ta ett litet bord
och klistra in här.
Så jag ska visa bara några uppgifter
om annan kurs möten och [ohörbart].
Se om jag missat något här, möten, hade jag det singular
så nu har vi sorterar i tabellen här
så att de olika möten, vilken typ är,
när det börjar, slutar etcetera.
Så jag kan fortsätta på bara inrätta dessa relationer
men som du ser det slags abstraherar SQL från att ha
vara skriven för hand och det tar hand om en hel del
av tunga lyft bakom kulisserna för dig
när du skapar dessa föreningar baserade på tangenterna
som är korrekt inställd i databasen.
När du går igenom
och montering Laravel Det finns mycket ... det finns så mycket
att täcka det är faktiskt sorterar för svårt att försöka se
vilken del att bita av och gå över men det finns mycket mer
som vi kommer att fortsätta att diskutera förmodligen på måndag.
Många fler funktioner till den välta ORM
och de olika sätten att spara data, associera data,
radera saker, vilket skapar de olika omfattningar
för när du frågar att föra in [ohörbart] etcetera
så att du kan titta igenom detta och jag tror ...
>> Processen blir det
som att flytta sedan framåt är åter vi bildade vår kärngrupp,
fyra personers grupper när vi bestämmer
på de olika grupperna projekt är hur ansvar
kommer i allmänhet att divvied upp är en eller två av er kommer att sortera
för att gå tillbaka till ritningen styrelse och räkna ut okej
för alla problem vi försöker
att lösa här är de enheter som vi måste genomföra,
till exempel en instruktör eller en kärna eller något slags
på att gå dit och du kommer spec ut databastabeller
som vi gjorde i den första halvan av i dag och sedan som Tim anspelade
att här är nästa steg i denna process kommer att vara att komma
upp med de klasser och du ska skriva några filer
som sträcker vältalig i detta sätt med användning av en del av den
ur lådan funktionalitet utan då också lägga kanske några
om du äger funktionalitet för exempel få telefonnummer
där du kanske fint formatera telefonnummer baserade
på vissa standardtema och så vidare och sedan alla
denna information kommer förmodligen kommuniceras till en
eller två eller annan ... tre andra människor
i din grupp som säger allt rätt du har dessa klasser,
du har denna funktion nu börja faktiskt skriva logiken
implementera regulatorer, under tiden någon annan
i din grupp kommer att hantera åsikter och så kniv mallar
att Tim syftade till någon som tar hand
av den [ohörbart] erfarenhet och använda gränssnitt
och drop down användaren och allt som
och även om vi har bara börjat
att skrapa på ytan här det faktum
att Tim inte skriva ett enda linje av SQL och det faktum
att han var typ av möjlighet
till auto ansluta dessa flera tabeller är
där du verkligen börjar se saker och ting ganska kraftfullt.
Så även om det vid först det kommer
att absolut vara en lärande kurva för att du slags har
att lära sig hur detta särskild ram fungerar.
Till slut att lägga till några nya bord, lägga till några nya inslag
att naturligtvis en ny katalog och dylikt kan ta bara några minuter
att göra och uppdatering mallar, bara sekunder
så det är egentligen ganska spännande vad du kan börja
att göra snabbt.
Så tack så mycket till Tim på att klippa hängare, tar hand
av lotteriet formen annars inget att göra
tills du hör tillbaka från oss i en dag eller så via e-post,
Vi ses nästa vecka.