[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.