>> [Musiikki soi]
>> ERIC Ouyang: Hei, kaikille.
Tervetuloa.
Tämä on dynaamisia Web-sovellukset kanssa Laravel.
Nimeni on Eric Ouyang.
Olen toisen vuoden opiskelija opiskelee yhteiskuntaoppi toissijaista tietotekniikassa,
ja asun Adams House täällä Harvardissa.
>> Joten Laravel, sen kaikkein ydin, on MVC Web App puitteissa.
Joten pidä siitä, mitä teillä on tehneet kanssa CS50 Finance,
Laravel on kehys, joka mahdollistaa voit rakentaa dynaamisia verkkosovelluksia.
Joten voit ajatella sitä joissakin aistit jatkeena tyyppi kamaa
olet tekemässä CS50 Finance, mutta järjestelmä, joka
paljon vankempi, paljon tyylikäs joissakin aistit,
ja tarjoaa paljon toiminnallisuus sinulle
rakentaa melko monimutkainen web-sovelluksia.
Mennäänpä läpi joitakin keskeisiä piirteitä,
ja sitten me sukeltaa Esimerkiksi rakennuksen blogi
sovellus Laravel.
>> Joten yksi ensimmäisistä asioista, jotka erottaa sen MVC tyyppistä työtä
että olet tehnyt kanssa CS50 on se sisältää ORM moottori.
Joten ORM tarkoittaa esineen relaatio kartoitus.
Joten tämän avulla voit rakentaa kerros abstraktio
välillä tietokannan ja ohjaimet.
Joten toisin kuin CS50 Finance jossa voit suoraan tehdä kyselyjä,
ORM kerros voit abstrakteja, että pois ja luoda
malleja, jotka ovat tehokkaampia kuin voit suoraan SQL-kyselyjä.
>> Toinen asia, joka on todella hyödyllistä on periytyvä malleja.
Joten huomaat sisään CS50 Finance, päädyt kirjoittamasta paljon asioita,
jossa saattaa voisit mahdollisesti uudelleen asioita, et pysty.
Joten täällä Laravel, voit käyttää mitä tunnetaan terän mallin moottori
luoda mestari asettelua.
Ja sieltä, voit periä niin, että osa-malleja voi tosiasiallisesti
kuuluvat elementit että laajemman mallin.
>> Muuttoliike.
Joten tämä on melko vakiovarusteita nykyaikaisin web-sovellus puitteet.
Joten tällä voit edustamaan tietokantakaava muutoksia koodiin.
Joten menemättä sanoa, phpMyAdmin, voit itse luoda nämä vaellukset
jos te edustatte tietokanta rakenteen muutokset koodin suoraan.
Ja tällä voit to-- erityisesti Jos sinulla on useita työskentelevät
samalla web application-- seurata näitä muutoksia,
sanoa GitHub, tai jokin muu arkistoon.
>> Joten tämä on todella hyödyllinen ja lieventää tarvetta
vaikkapa kulkemaan paljon SQL kaatopaikkojen.
Ja lopuksi, Composer on jotain todella, todella hyödyllinen
jonka avulla voit käyttää muita ihmisten koodia tekemään mahtavia asioita.
Joten Laravel n rakenne useita säveltäjä paketteja.
Joten sanon jos halusi tuoda in autentikointi paketti
tai jos halusi tuoda joissakin eräänlainen generaattori kirjoitus tai admin
liitäntä, voit kytkeä ja pelata näitä komponentteja Composer.
>> Joten pääset alkuun.
Kaikki kysymykset sinulta kaverit ennen kuin aloitamme?
Ei kysymyksiä?
Cool.
Joten ensimmäinen askel on asentamista Composer.
Joten Composer voit hallita näitä riippuvuuksia,
onko se Laravel puitteet tai jonkin muun kolmannen osapuolen laajennus.
Ensimmäinen komento sallii lataamaan Säveltäjä,
ja toinen komento voit siirtää sen paikalliseen bin kansio
jotta voit ajaa Säveltäjä suoraan terminaalin läpi.
>> Sen jälkeen, mennä eteenpäin ja luoda uuden Laravel projekti.
Olemme todella menossa käyttää joitakin esimerkki koodi
että olen koonnut luoda tämän blogin.
Mutta jos olet alkaen tyhjästä, voit käyttää tätä komentoa
täällä, säveltäjä luo-projekti, laravel slash laravel, ja sitten
nimi projektin.
Ja joka sisältyy kaikki jakelu koodi
aloittaa uuden Laravel projekti.
Joten teidän CS50 opinnäytetöiden, luultavasti luultavasti halua käyttää tätä komentoa.
>> Mutta aiomme aloittaa tämän.
Joten kun olet tehnyt että olet menossa
melko laaja joukko tiedostojen blog50.
Joten vain mennä läpi Osa näistä komponenteista.
Huomaat tämän reitin hakemisto on app kansioon.
Sisällä app kansioon, siellä pari hyödyllistä kansioita.
Huomionarvoista aloittaa on tämä config kansioon.
Joten tämä asettaa miten Web-sovellus on
menossa vaikkapa todentaa ihmisiä tai käteisellä asioita tai yhteyden tietokantaan.
>> Ja mitä todella hyödyllistä on, että Laravel
avulla voit perustaa eri kehitysympäristöt.
Joten mitä olemme tehneet täällä on, jos menemme alle paikalliseen kansioon,
siellä database.php tiedosto.
Ja huomaat täällä, että me perustettu MySQL-yhteyden, joka
sallii yksilöiden liittää MySQL-palvelimen, joka on
suoraan CS50 laitteen.
Ja me yhteyden tietokantaan että otan nimeltään Blog50.
>> Joten itse mennä eteenpäin ja ajaa toimiva versio tästä,
vain saada tunteen siitä, mitä sovellus, että olemme rakentamassa
näyttää.
Joten minulla on kopio Tämän Blog50 päätökseen.
Joten Laravel oikeastaan on rakennettu palvelin
että voit käyttää suoraan komentoriviltä.
Joten tämä on samanlainen kuin PSET ennen kun itse
rakentaa oman palvelimen C. Joten he ovat yksi rakennettu niin
että voit ajaa Laravel sovellukset suoraan komentoriviltä.
>> Joten jos teemme php käsityöläinen palvelevat, tämä käynnistää kehitystä palvelin
portissa 8000.
Joten jos menemme paikallinen isäntä 8000, huomaat että, hei.
Meillä on blogi vauhtiin.
Joten Laravel täällä on tuottaa etusivulla blogissamme.
Hyvin yksinkertainen sovellus.
Mutta on pari todella näppäriä ominaisuuksia
että se tarjoaa alla huppu.
>> Joten blogi sovelluksen suoraviivainen.
Jos halusimme luoda postitse, Voimme klikata että painiketta.
Voimme sanoa, "Hei, kaikille.
Tämä on todella hauska seminaari, "esimerkiksi.
Ja kirjoittaa jotain tänne.
Teksti tähän.
Jos me valitse Lähetä, luultavasti huomata, että uusi blogi
Viestiä on lisätty etusivulla blogi.
Jos menemme takaisin tänne, huomaat, että on ollut joitakin kommentteja jo
blogissa.
Joten jos me selaa, luultavasti huomata, että Jonathan Tan sanoo
että hän oli hyvin kiehtoi tämä viesti.
>> Joten menemme miten esine relaatio kartoitus mahdollistaa
voit tehdä näitä suhteita melko saumattomasti samoin.
Cool.
Kaikki kysymykset toiminnallisuutta mitä aiomme rakentaa?
Cool.
Joten aloitetaan ulos todella luodaan tietokanta taulukoita.
>> Joten muistaa, että CS50 Finance, olet koonnut taulukon käyttäjille
sekä varastot oman salkun.
Niin kuin me aiemmin mainittiin, mitä käytämme Laravel
on jotain kutsutaan vaellukset.
Joten jos menemme takaisin jakelu koodi tähän,
Ensimmäinen komento on hyödyllistä, että Laravel tarjoaa sinulle
on tämä Migrate komento.
Joten voimme tehdä php käsityöläinen migrate: tehdä.
Joten tämä antaa meille mahdollisuuden luoda maahanmuuttoa.
>> Ja sitten me haluamme luoda muuttoliikkeen
nimeltään create_posts_table, joka on menossa
olla siellä, missä olemme menossa olla säilytykseen meidän blogikirjoituksia.
Ja huomaat täällä, että se toimii läpi joitakin koodi, joka todella
luo tiedosto aikaleiman sitä.
Joten jos menemme katsomaan Database, me huomaat alla Migrations
että se on luotu tyhjän tiedoston meille, jotka
on boilerplate koodia nimi että me määritelty, virkojen pöytä.
>> Ja se on kaksi tehtävää siinä.
Up on mitä haluamme ajaa kun muuttoliike kohdistuu tietokantaan.
Ja alas on mitä aiomme tehdä kun haluamme kääntää muuttoliike.
Joten tässä aloitamme ulos kanssa kirjoittamassa tätä muuttoliikettä.
Joten siellä on hyödyllinen luokka vuonna Laravel nimeltään Schema.
>> Joten aiomme ajaa Schema :: luo.
Ja me aiomme luoda taulukko nimeltään virkaa.
Ja tässä me soveltaa tätä käyttämällä toimintoa.
Ja sisällä täällä, me aiomme todella määritä sisältöä meidän pöytään.
Aiomme luoda tunnus, joka on auto-kasvavalla.
>> Lisäksi olemme menossa luoda kentän, joka
edustaa otsikko meidän blogi.
Olemme myös menossa luoda kentän tallentamiseen tekstin meidän blogi.
Ja lopuksi, olemme menossa säilyttää joitakin aikaleimat
sillä kun meidän Virka perustettiin ja kun se on päivitetty.
Ja alas, se on melko yksinkertainen.
Kaikki me haluamme tehdä, on pudotus taulukko, joka olemme luoneet.
>> Suuri.
Kaikki kysymykset?
Joten nyt jos me mennä eteenpäin and-- todella, paikallinen isäntä,
haluaisin poistaa mitä meillä oli aikaisemmin.
Mene Tietokannat.
Aion poistaa mitä meillä oli aikaisemmin.
Pudota tämä ja luo uusi tietokanta Blog50.
Joten nyt mitä maaginen osa on täällä, että me
voi soveltaa näitä vaellukset suoraan tietokantaan käyttäen komentorivin
työkalu.
Joten jos teemme php käsityöläinen siirtyä, huomaat että, hei.
Se on luonut muuttoliike pöytä, joka me katsomaan vuonna hieman,
ja se on soveltanut tätä ensin maahanmuuttoa.
>> Joten katsomme Blog50, huomaat että se on luotu kaksi pöytää meille.
Ensimmäinen on tämä vaellukset pöytä.
Joten jos me selata tätä, huomaat, että Tämä taulukko on varsin suoraviivaista.
Se vain sanoi, että, hei.
Olemme soveltaneet tätä muuttoliikettä.
Menemme takaisin ja katsoa virkaa.
Huomaat, että rakenne on juuri sitä, mitä oli pyytänyt sitä.
Meillä on auto-kasvattamalla tunnus.
Meillä merkkijono säilytykseen otsikko ja teksti kenttä
sisällön taltioimista varten.
Suuri.
Cool.
Kaikki kysymykset vaellukset työ, miten voimme soveltaa niitä?
Ei?
Cool.
Joten nyt aiomme mennä eteenpäin ja itse luoda malli.
Joten haluamme luoda viestejä malli tallentaa abstraktio tietokantaan.
Joten mieluummin kuin tekevät MySQL kyselyt suoraan, aiomme luoda.
Joten meidän on luotava kansio täällä kutsutaan malleja.
Ja sisällä täällä, me aiomme luo tiedosto nimeltä post.php.
>> Inside PHP-tiedosto, aiomme luoda
luokan kirjeenä, joka ulottuu kaunopuheinen.
Kaunopuheinen on nimi ORM moottori, joka Laravel tarjoaa.
Ja täällä, voisi odottaa, että sinun itse tarvitse kirjoittaa koodia.
Aiomme kirjoittaa joitakin auttajatoiminnot myöhemmin.
Mutta kättelyssä, tämä on jo tunnistaa, mikä on tietokannassa
ja voimme käyttää, sanovat, teksti meidän blogi tai otsikko,
ja luoda tavaraa suoraan melko paljon mitään koodia lainkaan.
>> Niin, että yksi maaginen komponentteja.
Ja tuuli kerran tässä luokassa on enemmän täysimittainen,
me sisältävät tietoa siitä, mitä se liittyy, niin kommentteja.
Myös luoda funktio joten voimme todellakin
suoraan saada URL of blogi sivulle.
Cool.
Kaikki kysymykset siitä?
Nro
Cool.
>> Joten nyt kun meillä on malli, me haluavat luoda ohjaimen, joka on
pystyä rajapinta näihin malleihin, ja sen jälkeen tietokantaan.
Joten jos me katsomaan BlogController, luultavasti
huomaa, että siellä ei ole paljon täällä nyt.
Kaikki on on hakemistotoiminnon joka luo kotisivun,
mutta ilman mitään siellä näyttää vielä.
>> Joten ensimmäinen funktio että aiomme luoda
on yksi, jonka avulla voimme luoda blogi.
Joten aiomme julistaa uusi toiminto nimeltään newPost.
Ja sisällä tässä yksinkertaisesti, olemme menossa asettaa ulkoasu tämä sivu
olla tehdä versio, jos muistamme CS50,
Tämän mallin nimeltään blog.new, joka aiomme luoda hieman.
>> Huomaat täällä line kuusi että me määritelty tämän muuttujan, layout.
Ja jos me katsomaan klo Näkymät kansio,
on Layouts kansio, johon sisältää hyvin perus HTML-tiedoston.
Ja huomata, huomaat että meillä on tämä pakkaus
täällä, että saadaan sisältöä.
Joten sisällä meidän malliin mitä me aiomme tehdä
on luoda mitä tulee olemaan korvataan suoraan tämän asettelun.
>> Joten sanoimme, että haluamme tehdä mallin nimeltään blog.new.
Mutta sisällä Blogi, siellä ei vielä tätä uutta mallia.
Joten aiomme luoda tiedosto nimeltä new.blade.php.
Tämä kertoo Laravel että Tämä PHP-tiedosto pitäisi
menettäisivät kanssa terä mallin moottori.
Joten tämä on melko suoraviivainen tiedosto.
Se tulee olemaan muotoa, jossa me itse lisätä blogi.
>> Joten taika täällä perintö on, että, hei.
Haluamme täsmentää, että jakso, sisällön jakso
täällä, mikä on rajattu bysection jastop.
Joten mitä välillä täällä on menossa korvata master asettelua.
Ja tässä mitä haluamme tehdä, on hyvin yksinkertaisesti luoda uuden HTML-tiedoston.
Toivotaan vain lisätä nopeasti otsikko.
Lisää blogi.
Ja sen sisällä, olemme luomassa muodossa.
>> Tämä lomake tulee olemaan toimintaa.
Ja tämä tulee olemaan jotain että me korvata myöhemmin,
ja näemme, miten reititys sopii tänne.
Mutta me vain menossa määritellä nyt että tämä menee URL reitti
alkaen createPost.
Ja sitten tämä on menossa on menetelmä postitse.
Sisällä täällä, olemme menossa on kaksi kenttää.
Div class = "muoto-ryhmä".
>> Käytämme Bootstrap CSS kirjasto armollisesti tarjoamat Twitter.
Joten aiomme luoda kaksi näistä.
Joten tämä ensimmäinen tulo on olemaan otsikko.
Joten input name = "title".
Class = "formcontrol".
Type = "text".
Aion lisätä paikanvaraajaan = "Otsikko".
>> Ja sitten toinen on olemaan tekstialueelle.
Name = "sisältö".
Class = "formcontrol".
Ja placeholder = "Kirjoita tähän".
Siellä mennään.
Lopuksi, me aiomme lisätä nopeasti Lähetä-painiketta.
Type = "submit" class = "BTN BTN-ensisijainen".
Nämä ovat siis kaikki piirteitä Bootstrap niin
että tämä voidaan asentaa ulos tavalla, joka on
saaliiksi käyttäjälle, sijaan alasti HTML.
>> Joten olemme määritelleet ohjain täällä.
Olemme määritelty hyvin yksinkertainen näkymä.
Mutta mikä puuttuu on sidekudosta.
Joten tässä vaiheessa, Laravel ei ole aavistustakaan siitä, miten
aiomme todella Pääset tähän ohjain.
Joten tämä on määritelty tiedosto nimeltä routes.php.
Ja juuri nyt, meillä on yksi reitti.
Mikä on kun menemme kotiin polku tällä sivustolla,
se tulee tehdä indeksi ohjain.
Joten tässä mitä meidän ei tarvitse tehdä on toteuttaa uusi reitti luomaan virkaan.
>> Joten käytämme tätä menetelmää saada, joka määrittelee
että kun käyttäjä yrittää saat tämän page-- erityisesti
post slash uusi page-- mitä me aiomme tehdä
on käyttää ohjainta nimeltään BlogController uusi viesti.
Jota emme juuri luonut.
Ja sitten olemme menossa sen alias sitä newPost.
Aiomme luoda toisen toiminto hieman.
Mutta mitä tässä alla avain "kuin" on mitä
voimme korvata sisällä meidän Blade malleja.
Joten nyt, katsotaanpa oikeastaan ​​sanoa myös reitin.
Joten olemme myös menossa luoda ohjaimeen
jotta voimme luoda näitä virkoja.
Joten jos käyttäjän viestit sivulle post slash uutta, mitä aiomme tehdä
on käyttää ohjain, joka aiomme luoda pian
nimeltään BlogController klo createPost.
Ja me aiomme alias Tämän niin createPost.
Cool.
>> Kaikki kysymykset?
Cool.
Joten juosta, mitä meillä on tähän mennessä.
Joten jos teemme php käsityöläinen palvella, näemme paljon virheitä.
Joten se näyttää meillä lauseoppivirhe reiteillä linja 27.
Ah.
Puuttuu puolipiste.
Joten jos menemme 8000, näet mitään täällä vielä.
Joten tämä on oletusarvo kotisivulla.
>> Mutta jos menemme lähettää leikata uusia, hei.
Se tulee olemaan muodossa, että me juuri luonut.
Juuri nyt meillä ei ole toteutettu toiminnallisuus
milloin me paina Lähetä-painiketta.
Joten jos me klikkaa Submit painiketta, se tulee suorittaa virheen.
Mutta aiomme koodi, joka juuri nyt, juuri me
haluavat tehdä, kun käyttäjä väittää tämän lomakkeen.
>> Tehdäänpä että.
Mene takaisin ohjaimet tiedosto.
Mitä aiomme tehdä, on tämän uuden toiminnon
jonka avulla voimme luoda postitse.
Julistaa uuden toiminnon.
Julkinen toiminta createPost.
Ja tämä toiminto tulee olemaan hieman kehittyneempiä kuin mitä
meillä oli ennen.
Mutta näet täällä, että emme ole menossa todella kirjoittaa mitään SQL.
ORM, Eloquent ORM, tulee sallia
meitä tekemään tämän joissakin tapoja enemmän tyylikäs tavalla.
>> Joten aiomme luoda uusi viesti.
Ja tässä me olemme instantiating uusi kohde
mallista, että me vain luotu, post malli.
Ja mitä me aiomme tehdä, on asettaa otsikko määrite tämän käyttämällä jotain
että saamme palvelimelta.
Joten tämä on samanlainen kuin mitä meillä oli aiemmin CS50 Finance
jos tekisimme, käyttämällä Super Global Post etsivät otsikko.
>> Joten Laravel tarjoaa joitakin puhtaanapito ja vaikka mitä tällä auttaja toimintoa.
Joten me mieluummin käyttää tätä sijaan Tämän hyvin perus raaka muodossa PHP.
Ja sitten me aiomme tehdä, on asettaa sisältöä sen Input saada sisältöä.
Olemme itse asiassa menossa kääri tämä hyödyllinen toiminto
että PHP tarjoaa nimeltään nl2br, joka kääntyy uusia linjoja, Maanmittauslaitoksen, osaksi leveä, taukoja,
jotta voimme todella olla eri kohdissa sen sisällä.
Ja lopuksi, mitä aiomme tehtävä on pelastaa tämä viesti.
Joten me kutsumme toiminto säästää tässä mallissa.
Aiomme pelastaa virkaan.
Ja lopuksi, mitä aiomme tehdä on ohjata käyttäjä nimenomaan
sen reitti, joka aiomme luoda pian, alias viewPost.
Ja me aiomme kulkea perustelut id, joka id tämän uusi viesti.
>> Suuri.
Joten nyt jos me itse mennä ja juosta tämän.
Aiomme lisätä uusi viesti.
Sanotaan tämä on seminaari 50.
Ja sano, varmasti.
ADSL.
Whatever.
Jonkinlainen sisältöä.
Ja toimittaa sen.
Ja me huomaamme, että, hei. reittejä ei ole määritelty.
Mutta jos me katsomaan phpMyAdmin ja etsiä onko meidän tehtävämme
tehnyt mitään.
Katsokaa Blog50 virkaa.
Me huomaamme, että, hei.
Itse asiassa, emme vain luoda että blogi lähettää kommentteja aikaleimat määritelty.
>> Joten nyt mennään takaisin ja itse luoda tämä toinen toiminto meidän ohjain,
erityisesti viewPost ohjain.
Joten julkista tehtävää viewPost.
Joten tässä mitä me teemme, vaan ottaa tyhjät sulkeet
me haluamme kulkea ID postitse että olemme luomassa.
Ja täältä mitä aiomme tehdä on todella kysely tietokantaan sitä.
>> Joten jos emme itse, siellä toiminto nimeltään
Etsi, jonka avulla voimme kysellä sen tunnus.
Erityisesti oikeastaan, me aiomme käyttää vaihtoehtoista versio nimeltään
Etsi tai Fail, jonka avulla voimme lopettaa pois tätä toimintoa,
heittää poikkeus, jos tunnus ohitamme vuonna ei ole olemassa.
Ja sitten me aiomme tehdä jotain samanlainen kuin mitä teimme aiemmin
jos asetamme sisällön Tämän sivun olevan
sulatettu versio tästä uuden näkymän joka aiomme luoda, blog.view.
>> Ja me aiomme kulkeutua it-- aivan kuten CS50 tehdä
function-- sanakirja muuttujia.
Avaimet tämän assosiatiivisia array tulla muuttujia malliin.
Joten aiomme tehdä post post.
Joten siirtää epäsuorasti viesti, joka olemme kyseenalaistaneet tietokannasta. .
Nyt mitä aiomme tehdä, on luoda tätä mieltä
jotta voimme todella tarkastella blogitekstejä että olemme rakentaneet.
>> Joten aiomme luoda tiedosto nimeltä view.blade.php.
Joten sisällä tämän mallin, mitä me aiomme tehdä
on koonnut yksinkertainen sivu, joka antaa meille mahdollisuuden näyttää sisältöä.
Niin teemme osassa, joka on ennen sisältöä.
Lopeta.
Ja mitä olemme menossa tehdä sisällä tässä
kirjoittaa joitakin HTML näyttää tällä sivulla.
>> Joten aiomme kääri se fancy Uusi HTML5 elementti nimeltään artikla.
Ja täällä, olemme menossa on otsikko, jossa
aiomme yksinkertaisesti h1, joka sisältää viestin otsikossa.
Joten tässä, jos katsomme tätä kaksinkertainen kihara ahdin merkintätapa,
tämä tekee olennaisesti PHP kaiku post otsikko.
Joten se hyödyllinen pika- että Laravel tarjoaa meille.
Joten aiomme käyttää Tämä merkintätapa sijaan.
>> Ja tässä, me aiomme myös tulostaa sen pitoisuus.
Ja täällä, olemme menossa tehdä postitse sisältöä.
Ja alas alareunassa mitä olemme aikoo tehdä, on luoda footer.
Ja footer, aiomme Ensimmäinen näyttö kun tämä oli lähetetty.
Joten tämä oli lähetetty klo, luodaan.
>> Ja Laravel käyttää todella mukava päivämäärän kirjasto nimeltään Carbon.
Joten voimme itse tehdä jotain kutsutaan difforHumans, jonka näit aiemmin.
Kun olemme kirjoittaneet. se tulee sanoa, kuten, viisi sekuntia sitten.
Joten tämä on todella mukava toiminnallisuutta Laravel.
Ja lopuksi, olemme menossa Sulje tämä footer.
>> Joten nyt jos menemme takaisin Kotisivu olemme menossa
nähdä mitään täällä vielä, koska emme ole koodattu ylös etusivulle.
Mutta jos menemme lähettää slash yksi, aiomme nähdä poikkeus.
Tietääkö kukaan miksi näemme poikkeus?
Mitä me puuttuu?
Onko ideoita?
Mitä siis teemme aikaisemmin meille todella
määritellä, miten saamme erityisesti ohjaimet?
>> SPEAKER 1: reitti?
ERIC Ouyang: Joo.
Joten meillä on vielä määriteltävä reittiä.
Joten palaamme tänne routes.php.
Huomaat, että me ole itse määritellyt
miten me aiomme saada Tämän ohjaimen.
Joten nyt aiomme määritellä tätä reittiä.
Se on melko yksinkertainen, samanlainen kuin mitä teimme aiemmin.
Mutta mitä aiomme huomata tässä että olemme menossa on paikanvaraajaan.
>> Joten jos teemme route.get slash kirjaustunnusta.
Joten tunnus nyt, mitä tulee välitetään ohjaimeen.
Tämä tulee käyttää ohjain, että me vain
luotu, BlogController klo viewPost.
Ja me aiomme alias tätä viewPost.
Suuri.
Joten nyt aiomme luoda tätä reittiä.
>> Joten nyt jos menemme täällä ja päivitä tämä sivu,
me itse asiassa ei ole uusi blogi.
Joten tämä on mitä me aiemmin luotu.
Hyvin yksinkertainen sivu, mutta näytöt blogikirjoitus että me juuri luonut.
Cool.
Ja jos me itse mennä läpi koko luomassa uutta blogi,
me huomaamme, että kaikki ohjaa kunnolla.
Jos sanon, "Hei.
Olen Jonathan Tan. "
Sano, "Tämä on minun blogi."
Ja toimittaa sen, tämä luo tämä uusi blogi, jossa ID 2,
joka askelin mitä meillä oli aiemmin ja näyttää sen oikein.
Mahtavaa.
>> Kaikki kysymykset?
Kyllä?
>> SPEAKER 2: Onko Laravel kahva desinfioinnit ja kaiken puolestasi?
ERIC Ouyang: Kyllä.
Joten kun näimme aiemmin, kun teimme tulo paksusuoli paksusuolen päästä,
että sanitates tahansa SQL injektiot ja vaikka mitä
että saatamme haluta tehdä, jos olemme pahantahtoinen käyttäjä verkkosivuilla.
Joten Laravel käsittelee paljon Kyseisen kulissien takana.
Hyvä kysymys.
>> Joten katsomaan kotisivulla.
Jos siis ensin mennä takaisin ohjain kotisivun,
huomaat, että se ei tee paljon täällä.
Huomaat, että emme ole kulkee tähän ohjain
mitään erityisen hyödyllistä.
Se on vain tämä hakemistotiedostoon.
>> Joten kulkeutua Tässä jotain hyödyllistä.
Ja nimenomaan, olemme menossa ohi viesteissä.
Ja Laravel avulla voimme tehdä postitse kaikille, jotka
voimme saada kaikki viestit.
Nyt jos menemme takaisin index.php, näet, hei.
Mikään täällä vielä.
Mutta mitä me haluamme tehdä täällä on todella kerrata läpi,
tehdä foreach lenkki viestiä, että voimme tulostaa virkaa.
>> Joten foreach viralla postitse, mitä haluamme tehdä
on tulostaa sisältöä on blogi.
Mutta yksi asia, jonka huomaat on, että me itse asiassa kirjoitti suurimman osan koodia
jo vuonna view.blade.php.
Joten mitä aiomme todella tehdä, on Käytä mukava hyödyllinen ominaisuus Blade
ja tekijä pois tämän yhteisen koodin.
Joten mennään täällä.
>> Aiomme ottaa tämän sisällön täällä, ja mitä me aiomme tehdä
on luoda uuden kansion.
Toivotaan vain kutsua sitä partials.
Ja täällä, olemme menossa luoda post.blade.php.
Joten tässä, me pois laskusta tavalla jotka haluamme näyttää nämä viestit.
Ja tässä mitä me teemme sijasta todella ottaa että HTML suoraan,
aiomme käyttää tätä direktiiviä nimeltään kuuluu blog.partials.post.
>> Ja mitä me aiomme tehdä täällä on kulkea virkaan sivun.
Joten nyt jos menemme takaisin tänne, me huomaa, että toiminnallisuus on edelleen
sama.
Mutta nyt meillä on tämä pois laskusta koodia, tämä HTML.
Joten voimme käyttää sitä Index.
Joten tässä, tämä on hyvin yksinkertainen.
Kaikki mitä teemme on muun muassa blog.partials.post ja array.
Ja jonnekin ennen, teemme post post.
>> Joten nyt jos menemme takaisin etusivu, näemme, että hei.
Meillä on luettelo kaikista blogitekstejä että meillä oli ennen.
Saatamme haluta lisätä joitakin "jos" olosuhteet ja "muu" olosuhteet
niin että jos meillä ei ole mitään blogissa,
haluamme näyttää jotain hyödyllistä.
Like, hei.
Ei ole sisältöä vielä blogissa.
Ja jos te todella katsoa jakelu koodi GitHub,
näet esimerkki siitä, miten me sen teemme.
>> Cool.
Kaikki kysymykset?
Kyllä.
>> SPEAKER 2: kai vain olennainen kysymys.
Back at reitti.
ERIC Ouyang: Joo.
Jos me katsomaan reittejä.
>> SPEAKER 2: Mistä uses.blogcontroller klo luoda postitse,
mitä se ohjaa meitä?
ERIC Ouyang: Joo.
Joo.
>> SPEAKER 2: Vai mitä that--
ERIC Ouyang: Niin, katsomaan, sano Esimerkiksi tämä reitti täällä.
Ensimmäinen osa on varsinainen URL että käyttäjä menee.
Ja tämä array täällä, assosiatiivisia array, määrittelee
miten haluamme olla hakemuksen teko vastauksena siihen.
Joten käyttää on ohjain, toiminto, että me
haluat soittaa, kun käyttäjä menee tätä URL.
Joten viewPost täällä oli toiminto, joka määrittelimme sisällä
of BlogController--
>> SPEAKER 2: Näen.
>> ERIC Ouyang: --so, että me voi todella tehdä näkymä,
suorittaa joitakin laskelmia, vuorovaikutuksessa SQL-tietokannan.
>> SPEAKER 2: OK.
>> ERIC Ouyang: Ja sitten muut osa ", kuten" on alias, että käytämme.
Joten jos huomaamme, kun loimme muodossa,
huomaat, että URL :: routecreatePost.
Joten se korvaa varsinaisen URL niin, että emme ole vaikeaa
koodaus nämä niin voimme muuttaa sen kerran, eli jos halusimme nimetä.
Sen sijaan post slash uusi, haluamme tehdä kuten, p
slash uusia vain puhdistaa jopa meidän URL-bittinen.
Haluamme muuttaa sen yhden paikan melko kuin kaikissa eri tiedostoja.
>> Cool.
Se on hyvä.
Joten nyt meillä on hyvin perus blogi alustalla.
Me luultavasti halua lisätä painikkeen niin että voimme itse luoda uusia virkoja.
Joten jos me katsomaan klo Layout Master,
meillä on osio nimeltä Header Oikea että olemme juuri määritelty ylös yläreunassa.
Joten voimme lisätä painikkeita yläosassa otsikon.
>> Joten jos menemme index.blade.php, todella tehdä, on määritellä, mitä menee sisälle täältä.
Joten tämä Header Oikea osio, mitä me aiomme tehdä
on lisätä painike mennä URL määritelty reitti uusi viesti.
Vain puhdistaa sitä ja tehdä se kaunis ja kaikki Bootstrap,
aiomme tehdä tämä oletus painiketta.
Pitäkäämme se suuri hauskaa.
>> Ja sen sisällä, voisimme laittaa jotain tekstiä.
Mutta mitä Bootstrap tarjoaa on glyphicons.
Voimme siis itse lisätä, että kiva kynä että näimme aiemmin.
Glyphicon.
Glyphicon-kynä.
Joten tämä antaa meille mahdollisuuden laittaa vuonna ikoni tekstin sijasta.
Nyt jos me emme lopeta, tämä määrittelee tässä jaksossa.
Ja hei.
Meillä on mukava painike, joka liittää meidät suoraan lisätä blogi sivulle.
>> Joten meillä on melko yksinkertainen blogi.
Voimme lisätä juttuja siihen.
Mutta mitä me yleensä odottaa blogeista kommentoi.
Joten se on todella tärkeää meille on, sanoa, jos joku muu vierailee verkkosivuilla
ja todella pitää virkaan, joka he voivat osallistua keskusteluun
muiden ihmisten kanssa, jotka käyvät sivulla.
Joten aiomme mennä ja luoda uusi tietokanta pöytä ja uusi malli
jotta voimme liittää huomautuksia virkaa.
>> Joten ensimmäinen askel, kuten ennen, on, että meidän täytyy ajaa muuttoliikettä.
Joten kuten ennen, teemme php käsityöläinen migrate: tehdä.
Ja me aiomme luoda nimeltään create_comments_table.
Tämä luo tiedoston että on meidän uusi muuttoliikettä.
Ja me aiomme, kuten ennen, määrittää uuden taulukon.
Joten Schema :: luoda taulukko nimeltään kommentteja.
Tämä toiminto täällä.
Ja sisälle pöydän mitä aiomme tehdä ensin,
kuten ennen, antaa tunnus.
Suurentaa tunnus.
>> Aiomme jotta käyttäjät voivat liittää nimensä tietyn kommentin.
Aiomme olla joitakin sisältöä, joka menee yhdessä tämän tekstin sisältöä.
Ja tässä me tulemme tehdä, on jotain erilaista.
Aiomme luoda kokonaisluku sitä kutsutaan post_id joka
tulee merkitä mitä post erityistä huomautettavaa menee.
>> Lisäksi olemme todella menossa asettaa viiteavainrajoite tästä.
Joten MySQL soveltavat sitä.
Emme yritä antaa kommentti numero
5 lähettää 5000, jos meillä ei oli 5000 viestiä siitä.
Joten mitä me teemme täällä, teemme ulko- post_id
tulee liittyä ID kenttä taulukosta virkaa.
Ja me todella tehdä jotain muu avulias, on onDelete.
>> Joten jos me poistaa joitakin post tietokannasta,
että haluamme Cascade poistaa kommentteja samoin.
Koska se ei ole kovin hyödyllistä Meille on kommentteja virkaa
että ei ole olemassa.
Ja lopuksi, kuten ennen, olemme aikoo perustaa aikaleimat tästä.
Ja kuten ennenkin, me aiomme on käänteinen maahanmuutto on
pudottamalla kommentit taulukossa.
>> Joten nyt jos menemme takaisin tänne, olemme menossa
suorittaa tämän muuttoliikkeen, artesaani maasta.
Ja nyt se on soveltanut tätä muuttoliike, että me juuri luonut.
Joten jos me katsomaan phpMyAdmin, teemme, itse asiassa, nyt
on kommentteja taulukko, joka on rakenne että me vain määritelty.
Joten kuten ennen, olemme luomassa uutta mallia
abstraktiin SQL taulukosta että me juuri luonut.
>> Joten Lisää uusi tiedosto.
Aiomme kutsua sitä comment.php.
Ja tämä on todella olemaan melko suoraviivaista pieni muutos
mitä meillä oli ennen.
Joten luokka Kommentti ulottuu Eloquent.
Ja mitä olemme menossa tehdä täällä on määritellä
toiminto, joka on suhteet muihin malleihin.
Joten aiomme olla virkaan toiminto täällä joka palauttaa tämän suhteen.
Joten olemme täsmennetään, että tämä kuuluu lähettää,
sanomalla, että on olemassa yksi viesti että tämä kommentti kuuluu.
>> Tämä todella on oltava pääoma P mallin.
Ja nyt vain toisella läppä puolella, meidän on sanottava, että, hei.
Viestejä on kommentteja.
Joten mitä aiomme tehdä, on määritellä julkisen toiminto kommentteja.
Ja tässä on palautettu Tässä on monia kommentti.
Joten nyt maagisesti kun meillä on viesti, saamme ominaisuuden kommentit
ja se tulee asuttaa se tiedot tietokannasta.
>> Joten itse mennä läpi ja lisää uusi ominaisuus näkemyksemme tiedosto
jotta voimme molemmat näyttö ja luoda kommentteja.
Joten aiomme määritellä uusi jakso.
Toivotaan vain erottaa se vaakasuora sääntöä.
Kohta id = "kommentteja".
Mitä me aiomme tehdä tässä on, kuten ennen,
kerrata läpi kaikki kommentit.
Joten oikeastaan ​​miten teemme tämän on, kuten mainitsin, melko maaginen.
>> Emme lähettää kommentteja.
Ja sitten voimme tehdä tämän jokaiselle silmukan jokaisen kommentteja.
Ja mitä me aiomme do on div class kommentti,
ja aiomme todella tulostaa tämä kommentti.
Niin näyttää, että hei, kommentoida name-- henkilö
kuka lähetetty tämän comment-- sanoo dot dot dot.
Aiomme laittaa tämän lohkon lainaus, vain jotta se näyttää hyvältä.
Ja sitten kommentoida sisältöä estoviittaus.
Ja foreach.
Joten nyt tämä tulee silmukka läpi kaikki kommentit
joka on liitetty jokaisen viestit
ja näyttää jokaisen näistä kommentteja.
Aion lisätä toisen osan alas täällä, jonka avulla voimme lisätä kommentin.
Joten h3 class.
Laita otsikko täällä.
Lisää kommentti.
Ja me määritellä uuden muodon.
>> Joten kuten ennen, olemme aikoo tehdä form action.
Ja tässä, uusia toimia olemme menossa määritellä uusi ohjain, joka
voimme vastata lähettää pyyntöjä luoda kommentteja.
Joten URL :: reitti createComment.
Aion kulkea parametrin täällä.
ID kentältä että Luomme kommentin.
Ja sitten menetelmä tämän lomake tulee olemaan postitse.
>> Nyt aiomme lisätä kaksi kenttää, muoto ryhmä.
Tämä tulee olemaan panos kanssa nimi "nimi" ja class = "muoto-ohjaus",
type = "text", ja placeholder = "Nimesi".
Olemme myös menossa määritellä toisessa muodossa kenttä, joka
tulee olemaan tekstiä alueen meillä oli ennen.
Aivan kuten ennen, kutsuvat sitä sisältöä.
Class = "muoto-ohjaus."
Placeholder = "Kirjoita tähän."
>> Ja juuri niin, että me voi itse esittää sitä,
lähetä tyyppi ja class = "BTN BTN-ensisijainen."
Sulje lomake.
Sulje tämä toiminta.
Joten nyt jos me päivitä tämä sivu, jos meillä on vaikkapa virkaan.
Meidän on käynnistettävä uudelleen palvelimelle.
PHP käsityöläinen palvella.
Reboot tätä.
Meidän on määriteltävä reitti.
Mutta nyt, nyt juuri tätä niin, että voimme todella näyttää
mitä sivu näyttää, ja sitten me itse luoda sitä reittiä.
Joten, hei.
Meillä on tässä uudessa muodossa tänne jotta voimme luoda kommentteja.
Joten oikeastaan ​​määritellä toimintoa ohjain
jotta voimme lisätä kommentteja.
Mennään takaisin.
Ja sisällä blogcontroller.php, mitä me aiomme tehdä
on luoda uusi toiminto kutsutaan luoda kommentti.
>> Julkinen toiminta createComment.
Tämä tulee olemaan yksi parametri, tunnus viestit
että olemme kommentoi.
Ja kuten ennenkin, olemme menossa ensin saada postitse.
Joten lähettää, findOrfail id.
Jälkeenpäin olemme menossa Luo uusi kommentti.
Joten kommentoida = uusi kommentti.
Kommentti name = Syötä :: saada nimi.
Kommentti content = sama uusi rivi osaksi tauot Input :: saada sisältöä.
>> Ja lopuksi, aiomme pitää liittää tämä kommentti post.
Joten aiomme käyttää tätä toimintoa, kommentit,
jonka avulla voimme pelastaa tätä suhdetta.
Joten nyt tämä kommentti on automaattisesti postitse tunnus.
Voisimme myös asettaa sen manuaalisesti, mutta tämä on
enemmän helppolukuinen niin pitkälle funktiona menee.
Ja kun teemme Tässä se, mitä me haluamme tehdä
on ohjata käyttäjä reitti määritelty viewPost
kanssa array parametri post ID.
>> Ja nyt niin, että tämä todella toimintoja, meidän on määriteltävä tätä reittiä.
Reitti :: post.
Ja nyt me aiomme kutsua tätä post slash ID slash kommentti.
Array käyttää uutta toimintoa että me juuri luonut.
BlogController.
CreateComment kuin createComment.
Suuri.
>> Joten nyt toivon, jos me päivitä tämä sivu ja lisätä kommentin, vaikkapa David Malan.
"Toivottavasti tämä toimii."
Lähetä.
Emme itse asiassa on kommentoida blogi.
Cool.
Joten nyt meillä on melko toiminnallinen blogikirjoitus.
Olemme juuri menossa lisää pari hienosäädön niin
että meillä on joitakin enemmän hyötyä tietoa näitä virkoja.
>> Joten jos menemme takaisin etusivulla, meillä ei ole mitään järkeä
kuinka monta mielipiteitä kullakin näistä viroista.
Joten mitä me todella menossa tehdä, on, sisällä meidän malli,
määritellä auttaja toiminto, jonka avulla meitä määrittää kommenttien määrä
jotka menevät virkaan.
Joten aiomme luoda auttaja toiminto.
>> Julkinen toiminta.
GetNumCommentsStr.
Joten merkkijono, joka määrittää, kuinka monta Huomautusten, jotka menevät yhdessä sen kanssa.
Ja mitä aiomme tehdä, on sanoa että num = tämä kommentteja laskea.
Joten aiomme laskea kommenttien määrä.
Ja jos tämä on yhtä suuri kuin 1, olemme vain aio palata 1 kommentti.
Ja sitten muuten haluamme palata ketjuuntuminen num ja kommentteja,
joten saamme monimuotoistumiseen oikea.
Vain tehdä tämä yksi lainaus.
Yksi kommentti.
>> Ja nyt voimme käyttää tätä toimintoa suoraan sisälle meidän mieltä.
Joten jos menemme takaisin osittainen viestit loimme,
Nyt haluamme todella näyttää kommenttien määrä.
Joten mitä voimme tehdä, on postitse, käytä tätä toimintoa
että me vain luotu näyttää kommenttien määrä.
Joten jos me nyt päivittää, se tekee, itse asiassa, näyttö
numero kommentit että siinä mukana.
>> Jos haluaisimme olla fancy, jos todella katsoa jakelu koodin,
voimme todella yhdistää tämä kommentteja.
Jos muistatte, me määritelty katsoo, että tämä on kohta ID kommentteja.
Joten jos me todella halusimme yhdistää suoraan kommentit osiossa, mitä
tekisimme tässä href URL reitin viewPost.
Pass pakassa ID post tunnus.
Ja sitten me halua mennä erityisesti kommentit osiossa.
>> Täällä katsotaanpa sulje tag.
Joten nyt jos me päivitä tämä sivu, me klikkaa tästä.
Menemme suoraan kommentit osiossa.
Jos meillä olisi enää postitse, voit itse nähdä tämän pomppia alas.
Mutta huomaat, että se on ei yläreunassa sivun.
Cool.
Suuri.
Niin, että melko yksinkertainen Esimerkiksi jotain yksinkertaista
että voit tehdä Laravel.
>> Mutta voit huomata tässä, että olemme tehneet paljon asioita
melko pieni määrä koodia.
Laravel voimme tehdä SQL-kyselyjä kulissien takana.
Se puhtaanapito meille kulissien takana.
Voimme tehdä näitä suhteita hyvin helposti ilman meitä tarvitsevat
tehdä mitään SQL liittyä lausuntoja yhdistää kommentit mitä virkaa.
Voimme tehdä tämän perintö malleja
jotta voimme määritellä nämä pesintä tiedostoja, joten emme toistamalla itseämme,
aivan kuten silloin, kun meillä oli, että näyttö blogitekstejä
että meillä ei tarvitse kopioi ja liitä koodi.
>> Ja täältä voit rakentaa yhä monimutkaisempia sovelluksia.
Voit kuvitella, jos me halusi toteuttaa log-in,
voisimme sanoa, tuoda kolmannen osapuolen kehys, jonka avulla voimme tehdä.
On joukko heitä jotka ovat todella, todella
hienoa, että voi tehdä kuin, salasanan palautus.
Ja se Lähetämme sinulle Nollaa salasana sähköpostitse.
Voimme toteuttaa luvan jotta voin luoda postitse,
mutta joku muu voi muokata sitä.
Voimme toteuttaa toimintoja poistaa viestejä.
>> Mutta näet tästä, että meillä on melko paljon kaikki alkeellisia osat
rakentaa joitakin todella, todella, dynaaminen ja jännittävä verkkosovelluksia.
Niin, että olen sitä mieltä, että olemme hyviä.
Onko teillä kysyttävää?
Kyllä?
>> SPEAKER 3: Miten sinä saada staattista sisältöä?
>> ERIC Ouyang: Staattinen sisältö.
Joten näit ennen, että kun meillä oli Tämän täällä, tämä ulkoasu sisältöä,
näkymä merkki, meillä oli tämä ilman tätä array jälkeenpäin.
Blog.index, meillä oli tämä kuin vain staattinen tiedosto.
Joten jos emme kulje mitään pitkin sitä,
se täytyy vain tehdä HTML suoraan.
Mutta jos ohitamme tässä associative joukko virkaa, joka on dynaamisesti
veti tietokannasta, me voi tehdä sivun dynaaminen.
Cool.
Muita kysymyksiä?
SPEAKER 3: Miten vertailla Laravel on ehkä joitakin muita vaihtoehtoja?
ERIC Ouyang: Toki.
Joo.
Joten Laravel is-- se suuri question--
yksi monista vaihtoehdoista web kehyksiä.
Joten Ruby on Rails on yksi, joka on suosittu.
Uskon Twitter käytetään olla toteutettu Ruby on Rails.
Mielestäni he ovat vuodesta kytketty.
On toinen nimeltään FuelPHP.
>> Joten Ruby on Rails käyttää Ruby kieli ja toteuttaa paljon MVC tavaraa
että näemme täällä.
FuelPHP on toinen PHP puitteet.
Django on yksi suosikeistani.
Se on web puitteet Python.
Joten voit kirjoittaa Web App Python.
Joten siellä on ton näistä vaihtoehdoista.
>> Laravel, luulen, ja heille suuri on suosikkini oikea
nyt PHP vain siksi Komponenttien
että puhuimme aiemmin.
Se säveltäjä käytössä.
Se sisältää todella, todella ilmeikäs ORM järjestelmä.
On myös todella mahtava sivupohjamoottori kieli, että jotkut toiset
vain eivät tarjoa.
Ja vaellukset.
Migrations ovat mahtavia samoin.
Cool?
Mahtavaa.
No, kiitos niin paljon katsomassa tämän seminaarin,
ja onnea teidän opinnäytetöiden.