>> Så en av disse, de fineste funksjoner
av Laravel rammeverk er den veltalende ORM
og som David påpekte, en ORM er et objekt relasjonsskisseprogram
som gjør det mulig å kartlegge data basis rader til objekter i php
og lar deg skape assosiasjoner
mellom disse ulike tabeller virkelig enkelt uten
å skrive en masse SQL under panseret
og gir deg en virkelig fin syntaks for å søke
for en individuell rekord.
Så i stedet for å si: velge, stjerne, fra kurs
der noe annet du vil si, kurs, finne [uhørbart]
eller baner finner noen av de kurs du leter etter
og det ville bestemme hva SQL ment å være skrevet
og utføre den riktig for deg og gi det tilbake til deg
i en gjenstand som du kan da vise
på skjermen virke lett.
Så måten at den veltalende RM fungerer er å ... konvensjonen
at den bruker er at hvis du har en data base tabell
som er pluralized så for eksempel kurs,
du ville lage en klasse i modellene mappen samtalekurs
og det er alt du hadde trenger å gjøre er å si,
klasse kurset strekker veltalende og det
under panseret automatisk foruts
at hva tabellen Navnet er, hva ID er,
slik som det er en auto økes ID og det er en
som kommer med Laravel etter default det heter brukeren
og den bruker noen videre funksjonene kalles grensesnitt,
som vi ikke kommer å gå over,
men du kan se klasse bruker, strekker veltalende,
og du kan sette navn på bordet
hvis du ikke følger konvensjonen
av pluralized ... ha et flertall tabellnavn
og en enestående klasse navn.
Men vi vil gå videre skape et for gitt eksemplet
fra før, vil vi gå videre og lage en for kurs.
Så vi vil gjøre kurset dot php
og gjøre klasse kurs strekker veltalende.
Og så kommer jeg til å hoppe i php min admin
og faktisk re-navn denne tabellen til kurs.
Så nå har jeg et kurs bord med samme eksempel data
fra den første katalog som David hadde nevnt, og nå
at dette kurset er
i modellens katalogen vi kan gå foran og si, selvfølgelig,
begrense 10 så vi bare ønsker å få 10 poster,
få, og vi vil si Dette er kurs.
Og så nå er vi kommer til å gå videre
og la oss skape et bedre syn å vise slike ting faktisk.
Så jeg faktisk opprettet en blad mal tidligere
og jeg bare kommer til å gå videre og kopiere den over her bare
å spare, spare noen minutter av gangen.
[Bakgrunnsstøy]
Ok, så jeg laget en,
i visningen mappen jeg opprettet et kurs dot blad
og så kommer jeg til å gjøre visning lage kurs, og jeg kommer
å passere en variabel kurs med den ... faktisk det er ikke til
å jobbe, bare et sekund, kurs tittelen.
Ok, så det ikke fungerte fordi det står ingen tilgang
for bruker rute på lokale verten.
Så kan noen fortelle meg hva de tror kan være problemet her?
Så problemet er at jeg aldri fortalte Laravel hva ... hvem jeg er
i forsøket på å få tilgang databasen,
det gjør ikke automatisk vet at jeg er i stand
å få tilgang til data base Jeg prøver å spørre.
Så i config mappen
at jeg hadde nevnt tidligere det er en data base dot php
fil og her trenger vi å si at vi er brukernavnet, jharvard
og passord Crimson og nå hvis vi går videre og gjøre
den ukjente data base, database.
Så data base at vi prøver
å plukke kalles kurs [uhørbart]
og denne gangen det fungerte.
Så hva det gjør her er det er la meg gå videre
og gå tilbake til styreenheten.
Så gjorde jeg kurs, begrense ti, få,
så jeg sa bare at jeg bare vil 10 rader i datagrunnlag,
hente dem for dem, og sette dem inn i denne kurs variabel.
Så dette kurset variabelen er nå et objekt
som inneholder ulike kolonner
som jeg kan få tilgang til virkelig lett i malen.
Så jeg for hvert kurs som selvfølgelig ... gå videre og zoome inn,
og jeg bare si kurs tittel eller emnebeskrivelse
og det går fremover og utganger uansett data base raden
er der.
Så som du kan se sin mye enklere, men lett å resonnere
med enn å måtte skrive ut SQL for hånd
og deretter finne ut hvordan, hvordan å kartlegge det inn et objekt
men hvor det blir virkelig kraftig er når, som David sorter
av hadde nevnt tidligere, når du starter
å ha forskjellige tabeller som du ønsker å knytte
med andre, via fremmednøkler,
du kan ha disse objektene gjøre de tunge løftene
av spørring og finne ut hva parene opp med hva og hvordan
å gå videre og gjengi det.
Så hvis vi ser på ... la oss gå videre
og hoppe tilbake her veldig raskt, så data base config hvordan det fikk
der [uhørbart] hoppe over dette for nå.
Så de forskjellige typene i mine ... forskjellige typer
av relasjoner som standard noen av den ... er det noen mer
enn dette, men disse er 4 mest vanlige er en har en,
en har mange, hører det også, og det hører til mange relasjon.
Så du kan liksom tenke på en har en som,
du vet om du bare har en av noe
slik at i dette tilfellet en konto, dette er bare veldig dumbed
ned forenklet eksempel ordningen
men en konto bare har én leverandør i dette tilfellet.
Så det er en leverandør ID og en leverandør
så i kontoens tabellen det er en leverandør ID
og en leverandør selv har en ID, og ​​det er bare sort
av et 12:59 forhold.
Mens en ... det er en tilhører også
så en ordre kunne bare legges av en kunde,
mens en kunde kan ha en haug
av ordre ordren bare hører til en kunde,
du kan ikke ha tre forskjellige folk kjøper det samme
i dette eksemplet.
Og så en har mange, som jeg sa kunden har mange bestillinger
, men ikke den andre veien rundt og deretter tilhører
for mange er den mer avansert forhold
at David skulle over tidligere hvor du liksom
kombinering to tabeller via en intern tabell,
Så i dette tilfellet forsamlinger, deler er en sammenføyning
av sammenstillingene og deler eller et eksempel
at vi fikk tidligere,
kursene ... det instruktører fikk med seg
av en faglærer delta bord, og i dette tilfellet
og i Laravel sak,
det faktisk ikke krever en primære auto implementere ID
på å bli bordet selv om du kan ha en,
det faktisk ikke nødvendig med én eller for den
til å fungere slik den gjør.
Så la oss gå videre og satt opp slags
av noen få forskjellige objekter basert på lå ut av datagrunnlaget
at vi har akkurat nå og så vi skal holde kurs
som vår base objekt, men vi er kommer til å si at i jakt
ved data base bordet, kurset har mange møte
så det har mange møtetider, det hører til en avdeling
og det hører til både mange instruktører og krav.
Så det kan være flere krav til emnet
men krav kan være deles av ulike kurs.
Så la oss gå videre og se om vi kan modellere
at en liten bit ved hjelp den veltalende modeller
Så du har fått ... la oss starte med instruktøren dot [uhørbart]
så lik før, er vi kommer til å gå videre og si:
klasse instruktør, strekker veltalende
og så dette ville anta som jeg sa tidligere,
at det er et flertall instruktør instruktører
og dette er tabellen som det vil bli kartlagt til.
Og nå på kurset, vi vil gå videre
og si ... vi vil lage en metode
slik at offentlig funksjon instruktører,
offentligheten ... beklager jeg er ... yeah de offentlig funksjon instruktører
og måten Laravel sett
opp relasjoner er du returnerer en dette tilhører mange instruktør,
så dette forteller oss nå at kurset er assosiert
med instruktør modell, det er alt vi trengte å gjøre
å sette opp dette forholdet og nå som vi er
i denne sløyfen her kan vi si, så fordi det er en har ... det hører hjemme
til mange relasjoner der kan en eller flere instruktører.
Så det er en matrise eller det er et objekt som har mer
enn en instruktør på det så vi kommer til å også sløyfe
over her og si for hver kursinstruktører som instruktør
og deretter plukke ut den første navn og etternavn,
Jeg tror de er kolonner så første og siste,
det kan være første navn, etternavn.
Så først og sist det er satt opp i denne kurskatalogen
og la oss gå videre og se om det gjør
så instruktører ... ja det ser ut som de viser
opp med mindre det er ikke ett assosiert
så i dette tilfellet er det er ingen instruktører oppført
med det kurset, men i all de andre sakene du ser en
eller flere instruktører som definert i forholdet.
Så en ting som er liksom en fikser noen ganger med Orms
som dette er at du går videre og definerer en relasjon
og du tror greit det er henter dataene mine ordentlig
som jeg ser her alt er rende
på skjermen all right, alt er i orden,
det gjør all SQL bak kulissene for meg
men hva som skjer her er
når den først henter kurs den ikke vet
at du også kommer til å være leter etter instruktører.
Så det henter alle kursene for deg og så går
for å vise alle disse dataene i den, i visningen her
og da blir det til dette for hver kursinstruktører
og det står greit jeg ikke vet hva instruktører er
men la meg gå hente dem
og det gjør dette hver eneste gang at du kommer
gjennom kurset loop.
Så hver eneste gang du er prøver å vise et kurs
på skjermen det er liksom sent til alt som sier jeg trenger
å finne ut hva instruktører er for denne raden
og så det gjør n pluss en spørring
så det gjør derimot mange sløyfer du har den gjør en annen
spørring, mens det ikke er den mest effektive måten å gå
om henting og vise dine data.
Slik at måten å hente alt opp foran i Laravel er
å si kurs med instruktører begrense ti get
og nå vet det det ser ut ikke annerledes bare for øyet
men i stedet for å gjøre jeg tror det ville være 12 spørringer
eller så bak kulissene nå det er bare å gjøre to eller tre.
Så vi kan gå, vi kan fortsette i at mote og satt
opp bare noen få mer relasjoner så hva var noen
av det andre har mange møte.
Så like vi satt opp en Modellen heter møte,
klasse [uhørbart] strekker veltalende
og det skal ... alt bør tas vare på her
hvis vi ser på møtene bordet det har en automatisk økes ID
det er flertall så alt skal fungere skikkelig hvis vi prøver
å vise møtene.
Så la oss gå tilbake til, vi allerede forklart dette
og det var en ny forholdet ... beklager det var en
har [uhørbart] møte, så la oss se på møtebordet
og se hva vi kan ønsker å vise her.
Så la oss bare vise ... faktisk Jeg har en mal sett
opp for dette, vil jeg bare ta et lite bord
og lime dette inn her.
Så jeg kommer til å vise bare noen data
om de forskjellige kurs møter og [uhørbart].
Se om jeg gikk glipp av noe her, møter, hadde jeg det entall
så nå har vi liksom av bordet her
med hensyn til de forskjellige møter, hva type er,
når det begynner, slutter etcetera.
Så jeg kan fortsette på i bare sette opp disse relasjonene
men som du ser det liksom abstraherer SQL fra å ha
å bli skrevet for hånd og det tar vare på mye
av de tunge løftene bak kulissene for deg
når du oppretter disse foreninger basert på tastene
som er satt opp riktig i datagrunnlaget.
Som du går gjennom
og installere Laravel Det er mye ... det er så mye
å dekke det er faktisk slags vanskelig å forsøke å vise
hvilken del å bite av og gå over, men det er mye mer
som vi vil fortsette å diskutere sannsynligvis på mandag.
Mange flere funksjoner til den veltalende ORM
og de forskjellige måter lagring av data, knytte data,
slette ting, skaper de ulike omfang
for når du spør sette [uhørbart] etcetera
slik at du kan ta en titt gjennom dette, og jeg tror ...
>> Fremgangsmåte det vil bli
som deretter går fremover er en gang Vi har dannet vår kjernegruppe,
fire person grupper når vi bestemmer
på de ulike grupper prosjekter er måten ansvar
vil generelt bli divvied opp er en eller to vil sortere
av gå tilbake til tegne bord og finne ut all right
uansett problem vi prøver
å løse her er enheter vi må gjennomføre,
for eksempel en instruktør eller en kjerne eller annen form
for å bli med der av og du vil spec ut på databasetabeller
som vi gjorde i første halvdel av i dag, og deretter som Tim hentydet
å her neste trinn i at prosessen vil være å komme
opp med klasser og du skal skrive noen få filer
som strekker veltalende i på denne måten ved hjelp av noen av de
ut av boksen funksjonalitet, men da også legger kanskje noen
av dere eier funksjonalitet for eksempel få telefonnummeret
hvor du kan fint formatere telefonnummer basert
på noen standard tema og så videre, og da alle
denne informasjonen vil formodentlig kommuniseres til ett
eller to eller annen ... tre andre mennesker
i gruppen som sier alt rettighet du har disse klassene,
du har denne funksjonaliteten nå begynner faktisk å skrive logikken
implementere kontrollerne, i mellomtiden noen andre
i gruppen din vil håndtere utsikt og så blad maler
at Tim ble berget noen vil ta vare
av [uhørbart] erfaring og bruke grensesnitt
og rullegardin bruker og alt som
og selv om vi nettopp har begynt
å skrape i overflaten her det faktum
at Tim ikke skrive en eneste linje av SQL og det faktum
at han var en slags stand
å automagically delta disse flere tabeller er
hvor du virkelig begynne å se ting ganske kraftig.
Så selv om det på første det kommer
å absolutt være en lærende kurve fordi du liksom har
for å lære hvordan dette Særlig rammer fungerer.
Til slutt legger noen nye bordet, legge noen ny funksjon
å selvfølgelig en ny katalog og lignende kan ta bare noen minutter
å gjøre og oppdatering maler, bare sekunder
så det er egentlig ganske spennende hva du kan starte
å gjøre raskt.
Så takk så mye til Tim på at cliff hanger, tar vare
av lotteriet skjema ellers ingenting å gjøre
til du hører fra oss i en dag eller så via e-post,
Vi sees neste uke.