[MUSIC Playing] Eric Ouyang: Hey, gjithkush. Mirë se vini. Kjo është Building Dinamik Web Apps me Laravel. Emri im është Eric Ouyang. Unë jam një i paedukuar mjaft studiuar studimet sociale me një dytësor në shkenca kompjuterike, dhe unë jetoj në Adams Shtëpia këtu në Harvard. Pra Laravel, në thelbin e vet më të madhe, është një kornizë web app MVC. Pra pëlqen ajo që ju djema keni qenë duke bërë me CS50 Financave, Laravel është një kornizë që lejon ju për të ndërtuar Apps web dinamike. Kështu që ju mund të mendoni për atë në disa shqisave si një zgjatje e llojit të gjëra ju keni qenë duke bërë në CS50 Finance, por një sistem që është një shumë më të fuqishme, shumë më elegante në disa shqisave, dhe siguron një shumë të funksionalitetin për ju për të ndërtuar mjaft kompleks aplikimet web. Pra, le të shkojë nëpër disa nga karakteristikat kryesore, dhe pastaj ne do të zhyten në një shembull i ndërtimit të një blog Aplikimi me Laravel. Pra, një nga gjërat e para që e dallon atë nga lloji MVC e punës që ju keni qenë duke bërë me CS50 është ajo përfshin një motor ORM. Pra ORM qëndron për objekt mapping relacionale. Pra, kjo ju lejon të ndërtojmë një shtresë e abstraksionit ndërmjet bazës së të dhënave dhe kontrolluesit tuaj. Pra, ndryshe nga në CS50 Financave ku ju bëni drejtpërdrejt pyetje, shtresë ORM ju lejon për të abstrakt që larg dhe për të krijuar Modelet që janë më të fuqishme se ju mund të drejtpërdrejt me SQL queries. Një tjetër gjë që është me të vërtetë dobishme është templates i trashëgueshëm. Pra, ju do të vëreni në CS50 Financave, ju deri në fund rishkrimin shumë gjëra, ku e vendos ju mund potencialisht të ripërdorimin gjëra, ju nuk jeni në gjendje për të. Kështu që këtu në Laravel, ju mund të përdorni çfarë është i njohur si template motor teh për të krijuar një plan urbanistik master. Dhe nga atje, ju mund të trashëgojnë kështu që nën-templates mund të vërtetë përfshijnë elemente brenda se më të madh template bazë. Migrimi. Pra, kjo është një veçori mjaft standarde për kornizat më moderne e aplikimit web. Pra, kjo ju lejon të përfaqësojë Ndryshimet aplikoj bazës së të dhënave në kod. Pra, pa shkuar për të thënë, phpMyAdmin, ju në fakt mund të krijojë këto migrime ku ju përfaqësojnë bazën e të dhënave skemë ndryshimet në kodin drejtpërdrejt. Dhe kjo ju lejon to-- veçanërisht në qoftë se ju keni njerëz të shumta të punës në të njëjtin web application-- ndjekur këto ndryshime, thonë në Github, ose disa depo tjetër. Pra, kjo është me të vërtetë e dobishme dhe zbut nevojën për të, të themi, të kalojë nëpër një shumë të SQL mërzi. Dhe së fundi, Kompozitor është diçka të vërtetë, të vërtetë të dobishme që ju lejon të përdorni të tjera Kodi i njerëzve për të bërë gjëra të tmerrshme. Pra Laravel të strukturuar si disa paketa kompozitor. Pra thonë se në qoftë se ju të kërkuar për të sjellë në një paketë të legalizuara ose në qoftë se ju të kërkuar për të sjellë në disa lloj i shkrimit gjenerator ose një admin interface, ju mund të plug dhe të luajë ato komponentët me Kompozitor. Pra, le të ketë filluar. Çdo pyetje nga ju djema para se të ketë filluar? Nuk ka pyetje? Ftohtë. Pra, hapi i parë është instalimi Kompozitor. Pra, Kompozitor ju lejon për të menaxhuar këto varësitë, nëse kjo është kuadri Laravel ose disa zgjatje tjetër palë e tretë. Komandës së pari lejon ju për të shkarkuar Kompozitor, dhe komanda e dytë ju lejon të lëvizin atë në dosjen tuaj lokale bin kështu që ju mund të kandidojë Kompozitor drejtpërdrejt përmes terminalit. Pas kësaj, të shkojnë përpara dhe krijoni një projekt të ri Laravel. Ne jemi të vërtetë duke shkuar për të përdorin disa kodin shembull që unë kam vënë së bashku për të krijuar këtë blog. Por nëse ju jeni duke filluar nga zeroja, ju do të përdorni këtë komandë deri këtu, kompozitor krijojë-projekt, laravel çaj laravel, dhe pastaj Emri i projektit tuaj. Dhe që do të përfshijë të gjithë kodin e shpërndarjes për të filluar një projekt të ri Laravel. Pra, për projektet tuaja CS50 përfundimtare, ju do të ndoshta dëshironi të përdorni këtë komandë. Por ne jemi duke shkuar për të filluar me këtë. Pra, një herë ju kam bërë se, ju jeni do të merrni një numër mjaft i gjerë e dosjeve në blog50. Pra, le të vetëm të shkojnë nëpër disa nga këto komponente. Ju do të vëreni në këtë rrugë directory, ka një dosje app. Brenda dosje app, nuk ka një çift dosjet të dobishme. Nga shënim për të filluar me është kjo dosje config. Pra, kjo krijon si kërkesa juaj web është duke shkuar për të, të themi, vërtetoj njerëzit ose gjërat e mjeteve monetare ose të lidheni me bazën e të dhënave. Dhe çfarë është me të vërtetë dobishme është që Laravel ju lejon për të ngritur ndryshme Mjedise të zhvillimit. Pra, ajo që ne kemi bërë këtu është nëse ne do të shkojmë në dosje lokale, ka një skedë database.php. Dhe ju do të vini re këtu se ne të ngritur një lidhje MySQL atë lejon individët për të lidhur në server MySQL që është direkt në aplikim CS50. Dhe ne jemi lidh me një bazë të dhënash që unë të ngritur quajtur Blog50. Pra, le të vërtetë të shkojnë përpara dhe të drejtuar versionin punues të kësaj, vetëm për të marrë një kuptim të asaj kërkesë që ne jemi duke ndërtuar duket si. Kështu që unë kam një kopje të kjo Blog50 përfunduar. Pra Laravel në të vërtetë ka ndërtuar në një server që ju mund të kandidojë direkt nga vija e komandës. Pra, kjo është e ngjashme me PSet para kur ju në të vërtetë ndërtuar serverin tuaj në C. Pra ata kanë një të ndërtuar në mënyrë që ju mund të kandidojë Apps tuaj Laravel direkt nga vija e komandës. Pra, në qoftë se ne bëjmë php artizanal shërbejnë, ky do të nisë një server të zhvillimit në portin 8000. Pra, nëse ne do të shkojmë për të presë lokale 8000, ju do të vëreni se, hej. Ne kemi blog up tonë dhe të rrjedhshëm. Pra Laravel këtu është gjeneruar faqja e parë e blogun tonë. Kërkesë shumë të thjeshtë. Por ka një çift Karakteristika të vërtetë i mrekullueshëm që ajo ofron nën kapuç. Pra aplikimi blog-së drejtpërdrejtë. Nëse ne të kërkuar për të krijuar një post, ne mund të klikoni në këtë buton. Ne mund të themi, "Hej, të gjithë. Kjo është një të vërtetë zbavitëse seminar ", për shembull. Dhe shkruani diçka këtu poshtë. Tekst këtu. Nëse do të klikoni Submit, ju do të vini re se blogun tonë të ri pas është shtuar në faqja e parë e blog. Nëse kthehemi këtu, ju do të vëreni se ka pasur disa komente tashmë në blog. Pra, nëse ne lëvizni poshtë, ju do të vëreni se Jonathan Tan thotë se ai ishte shumë i intriguar nga ky post. Pra, ne do të shkojnë në si objekt mapping relacionale lejon ju të bëni këto marrëdhënie në një mënyrë mjaft seamless si. Ftohtë. Çdo pyetje në lidhje me funksionalitetin e ajo që ne jemi duke shkuar për të ndërtuar? Ftohtë. Pra, le të fillojë me të vërtetë duke krijuar tabelat e databazës. Kështu kujtojmë se në CS50 Financave, t'ju vënë së bashku një tryezë për përdoruesit si dhe për stoqe në portofolin tuaj. Pra, siç kemi përmendur më herët, ajo që ne përdorim në Laravel është diçka e njohur si migrimeve. Pra, në qoftë se ne të kthehemi në Kodi shpërndarje këtu, komanda e parë që është dobishme që Laravel ju ofron është kjo komandë migruar. Pra, ne mund të bëjmë të migrojnë php artizanal: të bëjë. Pra, kjo na lejon të krijoni një migrim. Dhe pastaj ne do të dëshironi për të krijuar një migrim i quajtur create_posts_table, cila do të jetë ku ne jemi duke shkuar për të jetë ruajtjen postimet tonë blog. Dhe ju do të vini re këtu se ajo shkon përmes një kod që në të vërtetë gjeneron një skedë me një pullë kohë në të. Pra, nëse ne do të shkojmë dhe të kërkoni në bazën e të dhënave, ne do të vëreni nën Migrim se është krijuar një skedar bosh për ne që ka kodin njëllojtë me emrin që ne të specifikuara, të krijojë i mesazheve tryezë. Dhe ajo ka dy funksione në të. Up është ajo që ne duam të drejtuar kur migrimi është aplikuar në bazën e të dhënave. Dhe poshtë është ajo që ne jemi duke shkuar për të bërë kur ne duam të kundërt një migrimi. Pra, këtu le të fillojë nga me shkrim këtë migrimin. Pra, ka një klasë të dobishme në Laravel quajtur skema. Pra, ne jemi duke shkuar për të drejtuar Schema :: krijuar. Dhe ne jemi duke shkuar për të krijuar një tabelë të quajtur mesazhet. Dhe këtu ne aplikojmë këtë duke përdorur një funksion. Dhe brenda këtu, ne jemi duke shkuar për të vërtetë specifikojnë përmbajtjen e tryezën tonë. Ne jemi duke shkuar për të krijuar një ID, cila është auto-bën rritjen. Përveç kësaj, ne jemi duke shkuar për të krijuar një fushë që përfaqëson titullin e blog post tonë. Ne gjithashtu jemi duke shkuar për të krijuar një fushë për ruajtjen e tekstit të blog post tonë. Dhe më në fund, ne jemi duke shkuar për të ruajtur disa timestamps për kur u krijua pas ynë dhe kur ajo u përditësuar. Dhe për poshtë, kjo është mjaft e thjeshtë. Të gjithë ne duam të bëjmë është rënie tabelë që ne kemi krijuar. I madh. Çdo pyetje? Pra, tani në qoftë se ne do të shkojmë përpara and-- në të vërtetë, host lokale, më lejoni të fshini atë që kemi pasur më herët. Shko në bazat e të dhënave. Unë jam duke shkuar për të fshirë atë që kemi pasur më herët. Drop kjo dhe për të krijuar një bazë të dhënash të re Blog50. Pra, tani çfarë magjike pjesë është këtu se ne mund të aplikojnë këto migrime të drejtpërdrejt në bazën e të dhënave duke përdorur command line mjet. Pra, në qoftë se ne bëjmë migrojnë php artizanale, ju do të vëreni se, hej. Është krijuar tabelën e migracionit, të cilat ne do të hedhim një vështrim në në një grimë, dhe ajo e aplikuar këtë migrimin e parë. Kështu që ne shikojmë në Blog50, ju do të vëreni që është krijuar dy pllaka për ne. Së pari është kjo tabelë migrimet. Pra, në qoftë se ne të shfletoni këtë, ju do të vëreni se kjo tabelë është mjaft i hapur. Është vetëm tha se, hej. Ne e kemi aplikuar këtë migrimin. Ne të shkojnë prapa dhe të shikojmë në postet. Ju do të vëreni se të strukturës është pikërisht ajo që ne e kishte kërkuar atë. Ne kemi një ID të auto-bën rritjen. Ne kemi një varg për magazinimin titulli, dhe një fushë teksti për ruajtjen e përmbajtjes. I madh. Ftohtë. Çdo pyetje në lidhje me migrimet punë, se si ne mund të aplikoni ato? Nuk ka? Ftohtë. Pra, tani ne jemi duke shkuar për të shkuar përpara dhe në të vërtetë të krijuar modelin. Pra, ne duam të krijojmë një model i mesazheve që ruan një abstraksion të bazës së të dhënave. Pra, në vend se duke bërë pyetje MySQL drejtpërdrejt, ne jemi duke shkuar për të krijuar. Pra, ne duhet të krijojmë një dosje në të quajtura këtu modele. Dhe brenda këtu, ne jemi duke shkuar për të krijojë një skedar të quajtur post.php. Brenda këtij file PHP, ne jemi duke shkuar për të krijuar një post klasë cila shtrihet elokuent. Elokuent është emri i ORM motor që Laravel ofron. Dhe në këtu, ne mund të presim që ju në të vërtetë nevojë për të shkruar disa kodin. Ne jemi duke shkuar për të shkruar disa Funksionet ndihmëse vonë. Por të dalë nga kutia, kjo tashmë do të njohin atë që është në bazën e të dhënave dhe ne mund të hyni, të themi, tekstin i blog post tonë apo titullin, dhe për të krijuar gjëra të drejtpërdrejt me shumë e shumë nuk ka kod whatsoever. Pra, kjo është një nga komponentët magjike. Dhe era dikur këtë klasë është e barabartë më të plotë, ne do të përfshijë informacion në lidhje me çfarë ajo është e lidhur me, kështu komenteve. Gjithashtu krijuar një funksion kështu që ne mund të vërtetë drejtpërdrejt merrni URL e një faqe blog post. Ftohtë. Çdo pyetje në lidhje me atë? Jo. Ftohtë. Pra, tani një herë ne kemi modelin tonë, ne duan të krijojnë një kontrollues që është gjendje te kryesh me këto modele, dhe më pas bazës së të dhënave. Pra, në qoftë se ne të marrë një vështrim në BlogController, ju do të vini re se atje nuk është shumë këtu tani. Të gjitha ka një funksion indeks që gjeneron në faqen kryesore, por pa ndonjë gjë atje për të shfaqur ende. Kështu funksionin e parë se ne jemi duke shkuar për të krijuar është ai që na lejon për të krijuar një blog post. Pra, ne jemi duke shkuar për të deklaruar një Funksioni i ri i quajtur newPost. Dhe brenda këtu thjesht, ne jemi duke shkuar për të vendosur paraqitjen e kësaj faqeje të jetë një version të merr, nëse ju kujtohet nga CS50, i këtij template quajtur blog.new, e cila ne jemi duke shkuar për të krijuar në një pak. Ju do të vini re këtu në linjë gjashtë që ne specifikuar këtë variabël, layout. Dhe në qoftë se ne të marrë një sy në dosje Views, ka një dosje Layouts, të cilat përfshin një file shumë themelore HTML. Dhe e vini re, ju do të vëreni që ne e kemi këtë enë këtu që jep përmbajtje. Pra, brenda template tonë ajo që ne jemi duke shkuar për të bërë është krijuar atë që do të jetë zëvendësua direkt brenda kësaj layout. Pra, ne tha se ne duam që të merr një template quajtur blog.new. Por brenda Blog, nuk ka jo ende kjo template të ri. Pra, ne jemi duke shkuar për të krijuar një skedar i quajtur new.blade.php. Kjo tregon se Laravel kjo PHP skedar duhet të jetë dhënë me motor teh template. Pra, kjo është një mënyrë të drejtë skedar i thjeshtë. Ajo do të jetë forma me të cilën ne në të vërtetë të shtoni në një blog post. Pra magjinë këtu nga trashëgimia është se, hej. Ne duam të specifikojë se seksioni, seksioni përmbajtja këtu, e cila është e përcaktuar që ngasection dhestop. Pra, çfarë është në mes këtu do të të zëvendësohet në master-plan urbanistik. Dhe këtu ajo që ne duam të bëjmë është shumë thjesht të krijuar një skedë të re HTML. Le të vetëm të shtoni një titull të shpejtë. Shto një blog post. Dhe brenda saj, ne jemi duke shkuar për të krijuar një formë. Kjo formë do të ketë një veprim. Dhe kjo do të jetë diçka që ne të zëvendësojë në më vonë, dhe ne do të shohim se si kurs i përshtatet në këtu. Por ne jemi vetëm do të përcaktojë për tani se kjo shkon në një URL me rrugë nga createPost. Dhe pastaj kjo do që të ketë postim metodë. Brenda këtu, ne jemi duke shkuar të ketë dy fusha. Klasë div = "formë-grup". Ne jemi duke përdorur bibliotekën bootstrap CSS dhënë me mirësjellje nga Twitter. Pra, ne jemi duke shkuar për të krijuar dy nga këto. Pra, kjo input i parë është do të jetë titulli. Emri Pra input = "title". Class = "formcontrol". Type = "text". Unë jam duke shkuar për të shtuar një placeholder = "Titulli". Dhe pastaj e dyta është do të jetë një zonë teksti. Emri = "përmbajtjen". Class = "formcontrol". Dhe placeholder = "Shkruani këtu". Ka ne do të shkojmë. Së fundi, ne jemi duke shkuar për të shtoni një buton të shpejtë të paraqitur. Type = "submit" class = "btn BTN-primar". Pra, këto janë të gjitha Tiparet e bootstrap kështu se kjo mund të jetë hedhur në një mënyrë që është e pre të përdoruesit, në vend se HTML zhveshur. Pra, ne kemi përcaktuar kontrollues këtu. Ne kemi përcaktuar një pamje shumë të thjeshtë. Por ajo që mungon është ind lidhës. Pra, në këtë pikë, Laravel ka asnjë ide se si ne jemi duke shkuar për të vërtetë hyrë në këtë kontrollues. Pra, kjo është e përcaktuar në një skedar i quajtur routes.php. Dhe tani, ne kemi një rrugë. Cili është kur të shkojmë për të shteg shtëpi për këtë faqe interneti, ajo do të merr Indeksi kontrollues. Kështu që këtu ajo që ne duhet të bëjmë është të zbatojë një rrugë e re për ne për të krijuar një post. Pra, ne e përdorim këtë metodë të marrë, e cila specifikon se kur një përdorues përpiqet të merrni këtë page-- mënyrë specifike pas çaj page-- të re ajo që ne jemi duke shkuar për të bërë po përdorin kontrollues të quajtur Pas BlogController i ri. Ai që ne sapo krijuar. Dhe atëherë ne jemi duke shkuar për Alias ​​atë si newPost. Ne jemi duke shkuar për të krijuar një tjetër funksion në një pak. Por ajo që është këtu nën kyç "si" është çfarë ne mund të zëvendësojnë brenda Blade templates tona. Pra, tani për tani, le të në të vërtetë po të them gjithashtu rrugë. Pra, ne jemi edhe duke shkuar për të krijuar një kontrollues kështu që ne mund të krijojë këto poste. Pra, në qoftë se një përdorues posts për postin e faqes çaj i ri, ajo që ne jemi duke shkuar për të bërë është përdor një kontrollues që ne jemi duke shkuar për të krijuar pak kohë i quajtur BlogController në createPost. Dhe ne jemi duke shkuar për alias kjo me sa createPost. Ftohtë. Çdo pyetje? Ftohtë. Pra, le të kandidojë atë që kemi deri tani. Pra, në qoftë se ne bëjmë php artizanal shërbej, ne do të shohim shumë gabime. Pra, duket si ne kemi një gabim sintakse në rrugët vijë 27. Ah. Missing një pikëpresje. Pra, nëse ne do të shkojmë në 8000, ju do të shihni asgjë këtu ende. Pra, kjo është faqe në shtëpi default. Por nëse ne do të shkojmë për të postoj çaj i ri, hej. Ajo do të jetë në formën që ne sapo krijuar. Tani për tani, ne nuk kemi zbatuar funksionalitetin e kur ne shtypni butonin Submit. Pra, në qoftë se ne të klikoni mbi Submit button, ajo do të kandidojë një gabim. Por ne jemi duke shkuar për kodin që tani, pikërisht ajo që ne doni të bëni kur një përdorues paraqet këtë formular. Pra, le ta bëjmë këtë. Kthehu mbrapa në dosjen e kontrolluesit. Ajo që ne jemi duke shkuar për të bërë është zbatojë këtë funksion të ri që na lejon për të krijuar një post. Deklaroni funksion të ri. CreatePost funksion publik. Dhe ky funksion do të jetë një pak më shumë i sofistikuar se çfarë kemi pasur më parë. Por ju do të shihni këtu se ne nuk jemi shkuar për të vërtetë shkruaj ndonjë SQL. ORM, elokuent ORM, do të lejojë na për të bërë këtë në disa mënyra një mënyrë më elegante. Pra, ne jemi duke shkuar për të krijuar një post të ri. Dhe këtu ne jemi instantiating një objekt të ri nga modeli që ne vetëm krijuar, modeli pas. Dhe ajo që ne jemi duke shkuar për të bëni është vendosur atribut Titulli i këtij diçka duke përdorur që ne të merrni nga serveri. Pra, kjo është e ngjashme me atë që kemi pasur më parë në CS50 Financave ku ne do të bëjmë, duke përdorur Super Global Post kërkuar për titull. Pra Laravel ofron disa kanalizime dhe gjësend duke përdorur këtë funksion të ndihmës. Pra, ne do të preferojnë të përdorin këtë vend i kësaj forme shumë bazë të para nga PHP. Dhe pastaj ajo që ne jemi duke shkuar për të bëni është vendosur përmbajtja e saj për të Input marrë përmbajtje. Ne jemi të vërtetë duke shkuar për të përfunduar kjo në një funksion të dobishëm që PHP ofron quhet nl2br, e cila kthen të reja linjave, NLS, në BRS, prishet, kështu që ne në fakt mund të ketë Paragrafët e ndryshme brenda saj. Dhe më në fund atë që ne jemi duke shkuar të bëni është të ruani këtë post. Kështu që ne e quajmë funksion të ruajtur në këtë model. Ne jemi duke shkuar për të ruajtur postin. Dhe më në fund atë që ne jemi duke shkuar për të bërë po përcjellim përdoruesit në mënyrë specifike të rrugës që ne jemi duke shkuar për të të krijojë së shpejti, alias nga viewPost. Dhe ne jemi duke shkuar për të kaluar në argumentet id, duke qenë id e këtë post të ri. I madh. Pra, tani në qoftë se ne në të vërtetë të shkojnë dhe të drejtuar këtë. Ne jemi duke shkuar për të shtuar një post të ri. Le të thonë se kjo është seminar 50. Dhe thonë, i sigurt. ASDL. Çfarëdo. Një lloj përmbajtje. Dhe Submit atë. Dhe ne do të vëreni se, hej. Rrugët nuk definuar. Por në qoftë se ne bëjmë një vështrim në phpMyAdmin dhe shikoni për nëse ose jo funksionin tonë bëri asgjë. Shikoni në postet Blog50. Ne do të vëreni se, hej. Në fakt, ne vetëm nuk të krijuar atë blog postoj me timestamps siç specifikohet. Pra, tani le të kthehemi dhe të vërtetë të krijuar ky funksion tjetër në kontrollues tonë, në mënyrë specifike kontrollues viewPost. ViewPost funksion kaq publik. Kështu që këtu ajo që ne do të bëjmë, në vend të paturit e kllapa bosh, ne do të duan të kalojnë në ID e e pas që ne jemi duke krijuar. Dhe nga këtu ajo që ne jemi duke shkuar për të bërë është në të vërtetë query bazës së të dhënave për të. Pra, në qoftë se ne bëjmë të postoni, ka një funksion të quajtur Gjej që na lejon të query atë me ID. Në mënyrë të veçantë, në të vërtetë, ne jemi duke shkuar për përdorni një version alternativ i kësaj të quajtur Gjej ose Fail, e cila na lejon për të lënë jashtë këtij funksioni, hedh një përjashtim nëse ID ne të kalojë në nuk ekziston. Dhe atëherë ne jemi duke shkuar për të bërë diçka të ngjashme me atë që ne e bëmë më herët ku ne kemi vendosur në përmbajtjen këtë faqe të jetë version i dhënë kësaj pikëpamjeje të re që ne jemi duke shkuar për të krijuar, blog.view. Dhe ne jemi duke shkuar për të kaluar në it-- ashtu si në CS50 suvatoj function-- një fjalor të variablave. Çelësat e këtij array associative të bëhet variabla brenda template. Pra, ne jemi duke shkuar për të bërë postim pas. Pra kalojnë tërthorazi postin që ne kemi kërkohet nga baza e të dhënave. . Tani ajo që ne jemi duke shkuar për bëni është të krijojë këtë pikëpamje kështu që ne në fakt mund të shikoni e blog posts që ne kemi ndërtuar. Pra, ne jemi duke shkuar për të krijuar një skedar i quajtur view.blade.php. Pra, brenda këtij template, ajo që ne jemi duke shkuar për të bërë është vënë së bashku një faqe të thjeshtë që na lejon për të shfaqur përmbajtjen. Pra, ne bëjmë pjesë, kjo është e para përmbajtje. Stop. Dhe çfarë ne jemi duke shkuar për të bërë brenda këtu është shkruaj disa HTML për të shfaqur këtë faqe. Pra, ne jemi duke shkuar për të përfunduar atë me një dashuroj element i ri HTML5 quajtur Neni. Dhe në këtu, ne jemi duke shkuar që të ketë një kokë ku ne jemi duke shkuar për të thjesht të ketë një H1, që përfshin titullin pas. Pra këtu, nëse ne shikojmë në këtë double simbol kaçurrel mbajtëse, kjo do të bëjë në thelb PHP jehonë titullin pas. Pra, kjo është një stenografi dobishme që Laravel na ofron. Pra, ne jemi duke shkuar për të përdorur ky simbol në vend. Dhe këtu, ne jemi duke shkuar për të shtypura nga përmbajtja e saj. Dhe në këtu, ne jemi duke shkuar për të bërë përmbajtje pas. Dhe poshtë në fund atë që ne jeni do të bëni është të krijojë një futboll. Dhe në futboll, ne jemi duke shkuar për shfaqje e parë kur ky ishte postuar. Pra, kjo ishte e postuar në, e krijuar në. Dhe Laravel përdor një të vërtetë e bukur Data bibliotekë quajtur karboni. Pra, ne në fakt mund të bëjë diçka të quajtur difforHumans, që ke parë më herët. Kur ne të postuar. ajo do të thonë, si, pesë sekonda më parë. Pra, kjo është një të vërtetë e bukur funksionalitetin e Laravel. Dhe më në fund, ne jemi duke shkuar për të mbyllur këtë futboll. Pra, tani në qoftë se ne të kthehemi në Faqja Kryesore ne jemi duke shkuar për të parë se asgjë këtu ende sepse ne nuk e kemi koduar deri në faqen kryesore. Por nëse ne do të shkojmë për të postoj një çaj, ne jemi duke shkuar për të parë një përjashtim. A e di ndokush pse ne shohim një përjashtim? Çfarë jemi të humbur? Ndonjë ide? Pra, çfarë bëri që ne bëjmë më herët për ne në të vërtetë për të përcaktuar se si ne të merrni për të kontrolluesit të veçanta? Gjuha 1: rrugë? Eric Ouyang: Po. Pra, ne ende kemi për të përcaktuar rrugën. Pra, ne të kthehemi këtu për të routes.php. Ju do të vini re se ne nuk kanë përcaktuar në të vërtetë se si ne jemi duke shkuar për të marrë në këtë kontrollues. Pra, tani ne jemi duke shkuar për të përcaktuar këtë rrugë. Është mjaft i hapur, të ngjashme me atë që ne e bëmë më herët. Por ajo që ne jemi duke shkuar për të vini re këtu është se ne do të kemi një placeholder. Pra, në qoftë se ne bëjmë route.get pas slash ID. Pra ID tani është se çfarë do të të kalojë në kontrollues. Kjo do të përdorni kontrollues që ne vetëm krijuar, BlogController në viewPost. Dhe ne jemi duke shkuar për alias këtë si viewPost. I madh. Pra, tani ne jemi duke shkuar për të krijuar këtë rrugë. Pra, tani në qoftë se ne do të shkojmë këtu dhe rifreskoni këtë faqe, ne në të vërtetë keni blog post tonë të ri. Pra, kjo është ajo që ne e krijuar më herët. Very faqe e thjeshtë, por tregon blog post se ne sapo krijuar. Ftohtë. Dhe nëse ne në të vërtetë të kalojnë nëpër të gjithë Procesi i krijimit të një blog post të ri, ne do të vëreni se çdo gjë përcjellëse siç duhet. Nëse unë them, "Hi. Unë jam Jonathan Tan. " Thuaj: "Kjo është blog postimi im." Dhe Submit atë, kjo do të krijojë ky blog post të ri me ID 2, që increments nga ajo që kemi pasur më parë dhe tregon atë siç duhet. Awesome. Çdo pyetje? Po? Gjuha 2: A Laravel trajtuar sanitization dhe çdo gjë për ju? Eric Ouyang: Po. Pra, kur e pamë më herët kur ne e bëmë të dhëna zorrës së trashë të marrë, që sanitates ndonjë SQL injeksione dhe gjësend që ne të mund të dëshironi për të kryer nëse ne jemi një përdorues keqdashës i faqes së internetit. Pra Laravel trajton shumë e që në prapaskenë. Pyetje e mirë. Pra, le të marrin një vështrim në faqen kryesore. Pra, nëse ne së pari të kthehemi në kontrollues për faqen kryesore, ju do të vëreni se ajo nuk e bëjnë shumë këtu. Ju do të vini re se ne nuk jemi duke kaluar në këtë kontrollues diçka veçanërisht të dobishme. Është vetëm ky indeks fotografi. Pra, le të kalojë në kjo diçka e dobishme. Dhe në mënyrë të veçantë, ne jemi duke shkuar për të kaluar në postet. Dhe Laravel na lejon për të bërë post të gjithë, e cila do të na lejojë të marrë të gjitha postimet e bëra. Tani në qoftë se ne të kthehemi në index.php, ju do të shihni, hej. Asgjë këtu ende. Por ajo që ne duam të bëjmë këtu është në të vërtetë iterate nëpër, të bëjë një lak foreach mbi postet që na lejon të shtypura nga postimet. Postimet e kështu foreach si pas, ajo që ne duam të bëjmë është e shtypura nga përmbajtja i blog post. Por një gjë që ju do të njoftim është se ne fakt ka shkruar pjesën më të madhe atë kod tashmë, në view.blade.php. Pra, ajo që ne jemi duke shkuar për të vërtetë të bërë është përdorni një tipar të bukur të dobishme e Blade dhe faktor jashtë këtë kod të përbashkët. Kështu që ne do të shkojmë këtu. Ne jemi duke shkuar për të marrë këtë përmbajtje të drejtë këtu, dhe ajo që ne jemi duke shkuar për të bërë është krijuar një dosje të re. Le të vetëm e quajti atë partials. Dhe në këtu, ne jemi duke shkuar për të krijuar një post.blade.php. Pra këtu, ne faktorë jashtë rrugën në të cilat ne duam të shfaqur këto poste. Dhe këtu ajo që ne do të bëjmë në vend të në të vërtetë duke se HTML drejtpërdrejt, ne jemi duke shkuar për të përdorur këtë direktivë i quajtur përfshijnë blog.partials.post. Dhe ajo që ne jemi duke shkuar për të bërë këtu është të kalojë në postin e faqes. Pra, tani në qoftë se ne do të shkojmë përsëri këtu, ne do të vini re se funksionalitetin është ende njëjtë. Por tani ne kemi këtë faktorë jashtë kod, ky HTML. Pra, ne mund ta përdorin atë në Indeksin. Pra këtu, kjo është shumë e thjeshtë. Të gjithë ne bëjmë është të përfshijë blog.partials.post dhe array. Dhe diku në para, ne bëjmë pas postim. Pra, tani në qoftë se ne të kthehemi në faqe në shtëpi, ne do të shohim se, hej. Ne kemi një listë të të gjithë blog posts që kishim përpara. Ne mund të dëshironi të shtoni disa "nëse" kushtet dhe kushtet "tjetër" kështu që në qoftë se ne nuk kemi çdo gjë në blog, ne duam të shfaqur diçka të dobishme. Si, hej. Nuk ka përmbajtje ende në blog. Dhe në qoftë se ju djema të vërtetë të shohim në Kodi i shpërndarjes në Github, ju do të shihni një shembull se si të bëjmë atë. Ftohtë. Çdo pyetje? Po. Gjuha 2: Unë mendoj vetëm një pyetje themelore. Mbrapsht në rrugë. Eric Ouyang: Po. Nëse do të bëjmë një vështrim në rrugë. Gjuha 2: Ku e bën uses.blogcontroller në krijojë post, çfarë do të na drejtojë për të? Eric Ouyang: Po. Vërtet. Gjuha 2: Ose çfarë është that-- Eric Ouyang: Pra, të marrë një sy, thonë për shembull, kjo rrugë e drejtë këtu. Pjesa e parë është aktual URL që përdoruesi do të shkojnë për të. Dhe kjo array këtu, array associative, përcakton se si ne duam të kemi akt kërkesë në përgjigje të tij. Pra përdor është kontrollues, funksion që ne doni të telefononi kur një përdorues shkon në këtë URL. Pra viewPost e drejtë këtu ishte një funksion që ne të definuar brenda i BlogController-- Gjuha 2: unë shoh. Eric Ouyang: --so asaj ne në të vërtetë mund të bëjnë një pamje, të kryer disa llogaritje, ndërveprojnë me bazën e të dhënave SQL. Gjuha 2: OK. Eric Ouyang: Dhe pastaj tjetri pjesë, "si" është një alias që ne përdorim. Pra, në qoftë se ne të vini re kur ne krijuam formën, ju do të vëreni se URL :: routecreatePost. Pra, ajo zëvendëson në aktual URL kështu që ne nuk jemi të vështirë coding këto në mënyrë që ne mund të ndryshojë atë dikur, thonë se në qoftë se ne të kërkuar për të riemërtoni. Në vend të slash postës i ri, ne duam të bëjmë si, p çaj i ri vetëm për të pastruar up URL tanë një bit. Ne do të ndryshojë atë në një vend më tepër se të gjitha dosjet e ndryshme. Ftohtë. Kjo është e mirë. Pra, tani ne kemi një shumë të platformë themelore blog. Ne ndoshta dëshironi të shtoni në një buton kështu se ne fakt mund të krijojnë postimet e reja. Kështu që nëse bëjmë një vështrim në Layout Master, ne kemi një seksion të quajtur Header Djathtas që ne kemi përcaktuar vetëm deri në krye. Pra, ne mund të shtoni butona për krye të header. Pra, nëse ne do të shkojmë për të index.blade.php, në të vërtetë bëni është të përcaktojë se çfarë shkon brenda këtu. Pra, ky seksion Header drejta, ajo që ne jemi duke shkuar për të bërë është shtuar në një buton për të shkuar në URL përcaktuar nga posti rrugë të re. Vetëm për të pastruar atë dhe të bëjnë ajo goxha dhe të gjithë bootstrap, ne jemi duke shkuar për të bërë ky buton një default. Le të vetëm të bëjë atë të mëdha për argëtim. Dhe brenda tij, ne mund të vënë disa tekst. Por çfarë bootstrap ofron është glyphicons. Pra, ne në të vërtetë mund të shtoni në atë laps e bukur që kemi parë më herët. Glyphicon. Glyphicon-laps. Pra, kjo do të na lejojë për të vënë në një ikonë në vend të tekstit. Tani në qoftë se ne do të ndalemi, kjo do të përcaktojë këtë seksion. Dhe, hej. Ne kemi një buton të bukur që na lidh drejtpërdrejt për të shtuar një faqe blog postare. Pra, ne kemi një blog mjaft të thjeshtë. Ne mund të shtoni gjëra në të. Por ajo që ne zakonisht presin nga blogs është komentuar. Pra, kjo është me të vërtetë e rëndësishme për ne që të ketë, them, nëse dikush tjetër e viziton një faqe interneti dhe me të vërtetë i pëlqen postin që ata mund të angazhohen në diskutime me njerëz të tjerë që e vizitojnë faqen. Pra, ne jemi duke shkuar për të shkuar dhe për të krijuar një Tabela e re e bazës së të dhënave dhe një model të ri kështu që ne mund të shoqërojnë komenton me postime. Pra, hapi i parë, ashtu si më parë, është se ne kemi nevojë për të drejtuar një migrim. Pra, si më parë, ne e bëjmë php artizanal Migrojnë: të bëjë. Dhe ne jemi duke shkuar për të krijuar një të tillë i quajtur create_comments_table. Kjo do të krijojë një fotografi që ka migrimin tonë të ri. Dhe ne jemi duke shkuar për të, si para, të përcaktojë një tabelë të re. Pra Schema :: krijojë një Tabela e quajtur komente. Ky funksion këtu. Dhe brenda kësaj tryezë çfarë ne jemi duke shkuar për të bërë është për herë të parë, si më parë, të caktojë një ID. Increments ID. Ne jemi duke shkuar për të lejuar përdoruesit që të lidhen emrin e tyre me një koment të veçantë. Ne jemi do të ketë disa përmbajtje që shkon së bashku me këtë, përmbajtjen e tekstit. Dhe këtu ajo që ne jemi duke shkuar për bëni është diçka e ndryshme. Ne jemi duke shkuar për të krijuar një numër të plotë që quhet post_id cila është duke shkuar për të ditur se çfarë postim një koment i veçantë shkon me. Përveç kësaj, ne jemi të vërtetë do të vendosur një kufizim të huaj kyç për këtë. Pra MySQL do të zbatojë atë. Ne nuk jemi duke u përpjekur për të caktojë koment numrin 5 të postoni 5000 në qoftë se ne nuk kemi kishte 5000 postimet në të. Pra, ajo që ne bëjmë këtu, ne bëjmë post_id huaj do të jenë të lidhur me fushë ID nga postet tryezë. Dhe ne fakt do të bëjmë diçka tjetër e dobishme, është onDelete. Pra, në qoftë se ne të fshini disa postoj nga baza e të dhënave, që ne duam të bie nga lart fshin për komente si. Për shkak se ajo nuk është shumë e dobishme për ne që të kemi komente mbi postimet që nuk ekzistojnë. Dhe së fundi, si më parë, ne jemi duke shkuar për të vendosur pulla kohë për këtë. Dhe si më parë, ne jemi duke shkuar për kanë migrimi kundërt të jetë duke rënë komente tryezën. Pra, tani në qoftë se ne të kthehemi deri këtu, ne jemi duke shkuar për të drejtuar këtë migrim, migrojnë artizanale. Dhe tani ajo është aplikuar kjo Migrimi se ne sapo krijuar. Pra, nëse ne një vështrim në phpMyAdmin, ne bëjmë, në të vërtetë, tani kanë një comments tabelë që ka Struktura që ne vetëm të specifikuara. Pra, si më parë, ne jemi duke shkuar për të krijuar një model të ri në abstrakt SQL tryezë që ne sapo krijuar. Pra, le të Shto një skedë të re. Ne jemi duke shkuar për të thirrur atë comment.php. Dhe kjo është në të vërtetë do të jetë mjaft i hapur me një ndryshim të vogël nga ajo që kemi pasur më parë. Pra klasë Koment shtrihet elokuent. Dhe çfarë ne jemi duke shkuar për të bërë këtu është e përcaktuar një funksion që është Marrëdhënia me modele të tjera. Pra, ne do të kemi një funksion të postës këtu që kthen këtë marrëdhënie. Pra, ne jemi duke specifikuar se kjo i takon të postoni, duke thënë se ekziston një postë se ky koment i takon. Kjo në të vërtetë duhet të jetë P kapital për modelin. Dhe tani vetëm në rrokullisje tjetër anë, ne duhet të them se, hej. Mesazhe të ketë komente. Pra, ajo që ne jemi duke shkuar për të bërë është definojnë komente funksion publik. Dhe këtu është kthyer kjo ka shumë koment. Pra, tani magjike kur ne kemi një post, ne mund të merrni komentet atribut dhe ajo do të populloj atë me Informatat nga baza e të dhënave. Pra, le të vërtetë të shkojnë nëpër dhe shtoni një tipar të ri për fotografi të shikoni tonë kështu që ne mund të të dy shfaqje dhe për të krijuar komente. Pra, ne jemi duke shkuar për të përcaktuar një seksion të ri. Le të vetëm të ndarë atë me një rregull horizontale. Seksioni id = "komente". Ajo që ne jemi duke shkuar për të bërë këtu është, si më parë, iterate nëpër të gjitha komentet. Pra, në të vërtetë se si ne të bërë këtë është, siç e përmenda, mjaft magjik. Ne bëjmë postuar komente. Dhe atëherë ne mund të bëjmë këtë për çdo lak mbi çdo nga komentet. Dhe ajo që ne jemi duke shkuar për bëni është komenti klasë div, dhe ne jemi duke shkuar për të vërtetë shtypura nga ky koment. Pra, të shfaqur që hej, komentojë name-- personin qe ka postuar këtë comment-- thotë dot dot dot. Ne jemi duke shkuar për të vënë këtë në një bllok quote, vetëm për të bërë atë të duket bukur. Dhe pastaj komentojë përmbajtjen bllok kuotë. Dhe foreach. Pra, tani kjo do të lak nëpër të gjitha komentet që është e lidhur me secilin nga postet dhe të shfaqin secili prej këtyre komenteve. Unë jam duke shkuar për të shtuar një tjetër seksion poshtë këtu, e cila na lejon për të shtuar një koment. Klasë kështu h3. Vendos një titull këtu. Shto një koment. Dhe ne jemi duke shkuar për të përcaktuar një formë të re. Pra, si më parë, ne jemi do të bëjë formë veprim. Dhe këtu, veprim i ri është që ne jemi do të përcaktojë një kontrollues të ri që na lejon të përgjigjet për të postoj kërkesat për krijimin e komenteve. Pra URL :: rrugë createComment. Unë jam duke shkuar për të kaluar në parametri këtu. ID e postit që ne jemi duke krijuar koment në. Dhe pastaj Metoda e kësaj formë do të jetë pas. Tani ne jemi duke shkuar për të shtuar në a dy fusha, formë grup. Kjo do të jetë një input me emrin "emër" dhe të klasit = "formë-kontroll", tipit = "text", dhe me placeholder = "Emri yt". Ne gjithashtu jemi duke shkuar për të përkufizuar një tjetër fushë formë, e cila do të jetë një tekst zonë si kemi pasur më parë. Ashtu si më parë, e quajti atë të përmbajtjes. Class = "formë-kontroll." Placeholder = "Shkruani këtu." Dhe vetëm kështu që ne në të vërtetë mund të paraqesë atë, paraqesë llojin dhe klasë = "btn BTN-primar." Mbyllni formularin. Mbyllur këtë veprim. Pra, tani, nëse ne rifreskoni këtë faqe ku ne kemi, të themi, një post të veçantë. Ne duhet të ristartoni server. PHP artizanal shërbejnë. Reboot këtë. Ne kemi për të përcaktuar rrugën. Por tani për tani, le të vetëm të marrë këtë jashtë kështu që ne në fakt mund të ju tregojnë çfarë faqe si duket, dhe pastaj ne në të vërtetë do të krijojë atë rrugë. Pra, hej. Ne kemi këtë formë të re poshtë këtu kështu që ne mund të krijojë komente. Pra, le të vërtetë të përcaktuar një funksion brenda kontrollues kështu që ne mund të shtoni komente. Le të kthehemi. Dhe brenda blogcontroller.php, ajo që ne jemi duke shkuar për të bërë është krijuar një funksion të ri i quajtur krijojnë koment. CreateComment funksion publik. Kjo do të ketë një të vetme parametër, ID e posteve se ne jemi duke komentuar. Dhe si më parë, ne jemi shkuar për të parë të marrë postin. Pra postoni, findOrfail id. Më pas, ne jemi duke shkuar për të krijuar një koment të ri. Pra komentojë = Comment të re. Koment name = Input :: marrë emrin. Koment content = njëjtën linjë e re në pushimet e Input :: marrë përmbajtje. Dhe më në fund, ne do të kemi për të e lidhin këtë koment me postin. Pra, ne jemi duke shkuar për të përdorur ky funksion, komente, që na lejon të ruani kjo marrëdhënie. Deri tani ky koment do të ketë automatikisht pas ID. Ne gjithashtu mund të vendosur atë me dorë, por kjo është më të lehtë për të lexuar sa më shumë si funksion shkon. Dhe pasi ne kryejmë kjo, ajo që ne duam të bëjmë është përcjellëse e përdoruesit për Rruga e specifikuar nga viewPost me grup me parametër i postës ID. Dhe tani kështu që kjo në të vërtetë funksionet, ne kemi nevojë për të përcaktuar këtë rrugë. Route :: pas. Dhe tani ne jemi duke shkuar për të thirrur këtë pas slash koment ID Slash. Array përdor funksionin e ri që ne sapo krijuar. BlogController. CreateComment si createComment. I madh. Pra, tani shpresojmë se në qoftë se ne rifreskoni këtë faqe dhe të shtoni në një koment, të themi, David Malan. "Shpresojmë se kjo funksionon." Submit. Ne mund, në fakt, kanë një komentojë mbi këtë blog post. Ftohtë. Pra, tani ne kemi një mënyrë të drejtë blog post funksional. Ne jemi vetëm duke shkuar për të shto nja dy tweaks kështu se ne kemi disa më shumë të dobishme informacion mbi këto poste. Pra, në qoftë se ne të kthehemi në faqja e parë, ne nuk kemi asnjë kuptim e sa komente janë në secilin nga këto poste. Pra, ajo që ne jemi në të vërtetë duke shkuar për të bërë është, brenda modelit tonë, të përcaktojë një funksion të ndihmës që i lejon ne të specifikojë numrin e komenteve që të shkojë me një post të veçantë. Pra, ne jemi duke shkuar për të krijuar një funksion ndihmës. Funksion publik. GetNumCommentsStr. Pra, një varg që përcakton numrin i komenteve që shkojnë së bashku me të. Dhe ajo që ne jemi duke shkuar për të bëni është të them që num = ky komente numërimin. Pra, ne jemi duke shkuar për të numëruar Numri i komenteve. Dhe në qoftë se ky numër është e barabartë me 1, ne jemi vetëm do të kthehen 1 koment. Dhe pastaj ndryshe, ne duam të kthehemi varg i num dhe komente, kështu që ne të merrni pluralization saktë. Vetëm të bëjë këtë një kuotë të vetme. Një koment. Dhe tani ne mund të përdorni këtë funksion drejtpërdrejt në brendësi të mendimit tonë. Pra, në qoftë se ne të kthehemi në Postimet e pjesshme që ne të krijuar, tani ne duam të vërtetë të shfaqur numrin e komenteve. Pra, çfarë mund të bëjmë është pas, përdorni këtë funksion që ne sapo krijuar për të të shfaqur numrin e komenteve. Pra, në qoftë se ne tani refresh, atë bën, në fakt, ekran Numri komentet që shkojnë së bashku me të. Nëse do të donte të jetë i zbukuruar në qoftë se ju në të vërtetë shikoni në kodin e shpërndarjes, ne fakt mund të lidhin kjo komenteve. Nëse ju kujtohet, ne përkufizuar brenda të parë se kjo ka komente seksion të identitetit. Pra, në qoftë se ne në të vërtetë të kërkuar për të link direkt në seksionin e komenteve, çfarë ne do të bëjmë këtu është një href URL e viewPost rrugë. Kaloni në ID array e postës ID. Dhe pastaj ne duam të shkojnë në në mënyrë specifike komente seksion. Këtu le të mbyllë një tag. Pra, tani, nëse ne rifreskoni këtë faqe, ne të klikoni mbi këtë. Ne do të shkojnë direkt në Komentet seksion. Nëse do të kishte një post më të gjatë, ju mund të në të vërtetë shohim këtë fryrje poshtë. Por ju do të vëreni se është e jo në majë të faqes. Ftohtë. I madh. Pra, kjo është një mjaft i hapur shembull të diçka të thjeshtë që ju mund të bëni me Laravel. Por ju mund të vini re këtu se ne kemi bërë shumë gjëra me mjaft pak sasinë e kodit. Laravel na lejon të bëjmë SQL queries prapa skenave. Ai e bën të sanitacionit për ne në prapaskenë. Na lejon të bëjmë këto marrëdhënie shumë lehtë pa na patur nevojë për të bërë ndonjë SQL bashkohet deklarata për kombinuar komentet me atë që postet. Na lejon për të bërë këtë trashëgimia e templates kështu që ne mund të përcaktojë këto shkatërroj fole fotografi kështu që ne nuk jemi duke përsëritur veten, ashtu si kur ne kishim se shfaqje e blog posts se ne nuk duhet të kopjoni dhe ngjisni kodin. Dhe nga këtu ju mund të ndërtojë aplikacionet gjithnjë e komplikuar. Ju mund të imagjinoni nëse ne të kërkuar për të zbatuar log-in, ne mund të themi, të sjellë në një palë e tretë Korniza që na lejon të bëjmë atë. Ka një bandë prej tyre që janë me të vërtetë, të vërtetë i madh që mund të bëjë si, password recovery. Dhe ajo do të ju dërgoj një rivendosur email fjalëkalimin. Ne mund të zbatojë leje kështu që unë mund të krijojë një post, por dikush tjetër nuk mund ta redaktojnë. Ne mund të zbatojë funksionalitet të fshini postimet. Por ju mund të shihni këtu se ne kemi mjaft shumë të gjithë komponentët e rudimentare për të ndërtuar disa me të vërtetë, me të vërtetë, Apps dinamike dhe emocionuese web. Pra, me që, unë mendoj se ne jemi të mirë. A ju djema keni ndonjë pyetje? Po? Gjuha 3: Si mund të ju marrë përmbajtje statike? Eric Ouyang: përmbajtja Static. Pra, ju pa para se kur ne kishim kjo e drejtë këtu, kjo përmbajtje layout, shikoni, kemi pasur këtë pa këtë grup më pas. Blog.index, kemi pasur këtë si vetëm një fotografi statike. Pra, nëse ne nuk do të kalojë çdo gjë së bashku me të, ajo do të merr vetëm HTML direkt. Por në qoftë se ne të kalojë në këtë associative array e posteve, e cila është dinamike tërhequr nga baza e të dhënave, ne mund të bëjë faqe dinamike. Ftohtë. Çdo pyetje të tjera? Gjuha 3: Si do ta krahasoni Laravel për të ndoshta disa opsione të tjera? Eric Ouyang: Sigurisht. Vërtet. Pra Laravel is-- kjo është një question-- i madh një nga shumë opsione për kornizat e internetit. Pra, Ruby on Rails është një që është popullore. Unë besoj Twitter përdorur të jetë zbatuar me Ruby në binarët. Unë mendoj se ata kanë ndezur që nga. Ka një tjetër i quajtur FuelPHP. Pra, Ruby on Rails përdor gjuhën Ruby dhe zbaton një shumë të gjëra MVC që ne shohim këtu. FuelPHP është një tjetër kuadër i PHP. Django është një nga të preferuarat e mia. Kjo është një kornizë e web për Python. Kështu që ju mund të shkruani app tuaj të internetit në Python. Pra, ka një ton prej këtyre opsioneve. Laravel, unë mendoj, nga dhe i madh është e drejta ime e preferuar tani për PHP vetëm për shkak i përbërësve se kemi biseduar për më herët. Është Kompozitor aktivizuar. Ai përfshin një të vërtetë, të vërtetë sistem ekspresive ORM. Gjithashtu ka një templating vërtetë të tmerrshëm gjuha që disa nga të tjerët vetëm nuk japin. Dhe migrimet. Migracionet janë awesome si. I ftohtë? Awesome. E pra, falë kaq shumë për shikuar këtë seminar, dhe fat të mirë në projektet tuaja përfundimtare.