1 00:00:00,000 --> 00:00:02,538 >> [Muziek] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ERIC Ouyang: Hey, iedereen. 4 00:00:12,390 --> 00:00:13,580 Welkom. 5 00:00:13,580 --> 00:00:16,860 Dit is het bouwen van dynamische Web-apps met Laravel. 6 00:00:16,860 --> 00:00:18,290 Mijn naam is Eric Ouyang. 7 00:00:18,290 --> 00:00:23,860 Ik ben een tweedejaars bestuderen van sociale studies met een secundaire in de informatica, 8 00:00:23,860 --> 00:00:27,290 en ik woon in Adams Huis hier op Harvard. 9 00:00:27,290 --> 00:00:33,340 >> Dus Laravel, in zijn meest kern, is een MVC web applicatie framework. 10 00:00:33,340 --> 00:00:38,265 Dus graag wat jullie hebben gedaan met CS50 Financiën, 11 00:00:38,265 --> 00:00:42,480 Laravel is een kader dat toelaat u op te bouwen dynamische webapplicaties. 12 00:00:42,480 --> 00:00:47,710 Zo kunt u denken aan het in sommige opzichten als een uitbreiding van het soort dingen 13 00:00:47,710 --> 00:00:50,470 je hebt gedaan in CS50 Financiën, maar een systeem dat is 14 00:00:50,470 --> 00:00:55,890 veel robuuster, veel meer elegant in sommige opzichten, 15 00:00:55,890 --> 00:00:57,870 en geeft veel functionaliteit voor u 16 00:00:57,870 --> 00:01:03,060 om vrij complex te bouwen webapplicaties. 17 00:01:03,060 --> 00:01:05,010 Dus laten we gaan door een aantal van de belangrijkste kenmerken, 18 00:01:05,010 --> 00:01:09,550 en dan gaan we duiken in een voorbeeld van het bouwen van een blog 19 00:01:09,550 --> 00:01:12,500 applicatie met Laravel. 20 00:01:12,500 --> 00:01:16,700 >> Dus een van de eerste dingen die onderscheidt het van MVC soort werk 21 00:01:16,700 --> 00:01:22,100 dat je hebt gedaan met CS50 is het omvat een ORM-motor. 22 00:01:22,100 --> 00:01:27,410 Dus ORM staat voor object relational mapping. 23 00:01:27,410 --> 00:01:31,080 Hiermee kun je dus op te bouwen een abstractielaag 24 00:01:31,080 --> 00:01:35,230 tussen de database en uw controllers. 25 00:01:35,230 --> 00:01:39,150 Dus in tegenstelling tot in CS50 Finance waar u direct te maken queries, 26 00:01:39,150 --> 00:01:44,790 de ORM laag kunt u abstract dat weg en creëren 27 00:01:44,790 --> 00:01:48,085 modellen die zijn krachtiger dan je kunt direct met SQL queries. 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> Een ander ding dat is echt behulpzaam is erfelijk sjablonen. 30 00:01:53,510 --> 00:01:58,990 Dus je zult merken in CS50 Financiën, je uiteindelijk het herschrijven van een heleboel dingen, 31 00:01:58,990 --> 00:02:03,150 waar plaatst je kon potentieel dingen hergebruiken, je bent niet in staat om. 32 00:02:03,150 --> 00:02:08,539 Dus hier in Laravel, kunt u gebruik maken van wat er bekend als het blad template engine 33 00:02:08,539 --> 00:02:10,530 om een ​​master-out te creëren. 34 00:02:10,530 --> 00:02:15,840 En van daar, kunt u erven zodat de sub-templates kan eigenlijk 35 00:02:15,840 --> 00:02:21,210 omvatten elementen binnen dat grotere basissjabloon. 36 00:02:21,210 --> 00:02:21,810 >> Migratie. 37 00:02:21,810 --> 00:02:29,010 Dus dit is een vrij standaard functies op de meeste moderne web applicatie frameworks. 38 00:02:29,010 --> 00:02:32,710 Hiermee kun je dus te vertegenwoordigen database schema wijzigingen in de code. 39 00:02:32,710 --> 00:02:39,200 Dus zonder het gaan om te zeggen, phpMyAdmin, je kunt eigenlijk maken deze migraties 40 00:02:39,200 --> 00:02:44,660 waar u de database vertegenwoordigen schema verandert in de code direct. 41 00:02:44,660 --> 00:02:48,070 En dit laat je vooral to-- als je meerdere mensen die werken 42 00:02:48,070 --> 00:02:52,650 op dezelfde webpagina application-- volgen deze veranderingen, 43 00:02:52,650 --> 00:02:55,380 zeggen in GitHub, of een andere repository. 44 00:02:55,380 --> 00:03:00,880 >> Dus dit is echt nuttig en vermindert de noodzaak 45 00:03:00,880 --> 00:03:04,580 naar, zeg, pas rond een heleboel SQL dumpt. 46 00:03:04,580 --> 00:03:07,140 En tot slot, Composer is iets echt, echt nuttig 47 00:03:07,140 --> 00:03:09,840 die u toelaat om andere te gebruiken mensen code om vreselijke dingen te doen. 48 00:03:09,840 --> 00:03:14,020 Dus Laravel's gestructureerd als verschillende componist pakketten. 49 00:03:14,020 --> 00:03:17,870 Dus zeggen dat als je wilde brengen in een authenticatie-pakket 50 00:03:17,870 --> 00:03:23,440 of als je wilde brengen in wat soort generator script of een admin 51 00:03:23,440 --> 00:03:26,910 interface, kunt u plug and play die componenten met Composer. 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> Dus laten we beginnen. 54 00:03:31,570 --> 00:03:35,185 Eventuele vragen van u jongens voordat we aan de slag? 55 00:03:35,185 --> 00:03:36,500 Geen vragen? 56 00:03:36,500 --> 00:03:37,490 Cool. 57 00:03:37,490 --> 00:03:39,990 Dus de eerste stap het installeren van Composer. 58 00:03:39,990 --> 00:03:43,590 Dus Composer kunt u beheer van deze afhankelijkheden, 59 00:03:43,590 --> 00:03:47,770 of het nu de Laravel kader of een andere derde partij extensie. 60 00:03:47,770 --> 00:03:50,400 Het eerste commando maakt u Composer downloaden 61 00:03:50,400 --> 00:03:55,890 en het tweede commando kunt u beweeg het in uw lokale map bin 62 00:03:55,890 --> 00:04:01,340 zodat u Composer kan draaien rechtstreeks via de terminal. 63 00:04:01,340 --> 00:04:05,405 >> Na dat, ga je gang en maak een nieuw Laravel project. 64 00:04:05,405 --> 00:04:07,280 We zijn eigenlijk gaan gebruik wat voorbeeldcode 65 00:04:07,280 --> 00:04:10,760 die ik bij elkaar heb gezet om deze blog te maken. 66 00:04:10,760 --> 00:04:14,420 Maar als je begint uit kras, zou u deze opdracht gebruikt 67 00:04:14,420 --> 00:04:18,160 hier, componist creëren-project, laravel slash laravel, en dan 68 00:04:18,160 --> 00:04:19,940 de naam van uw project. 69 00:04:19,940 --> 00:04:22,275 En dat onder meer alle verdeelsleutel 70 00:04:22,275 --> 00:04:23,733 voor het starten van een nieuw Laravel project. 71 00:04:23,733 --> 00:04:28,870 Dus voor uw CS50 laatste projecten, zult u waarschijnlijk willen dat commando te gebruiken. 72 00:04:28,870 --> 00:04:31,210 >> Maar we gaan beginnen met deze. 73 00:04:31,210 --> 00:04:34,630 Dus als je eenmaal hebt gedaan dat, je gaat krijgen 74 00:04:34,630 --> 00:04:40,190 een vrij uitgebreide nummer van bestanden in blog50. 75 00:04:40,190 --> 00:04:43,840 Dus laten we gewoon gaan door sommige van deze componenten. 76 00:04:43,840 --> 00:04:49,060 U zult merken op deze route directory, is er een app map. 77 00:04:49,060 --> 00:04:52,960 In de map app, er is een paar nuttig mappen. 78 00:04:52,960 --> 00:04:56,330 Van de nota om te beginnen met is dit config map. 79 00:04:56,330 --> 00:04:59,210 Dus dit zet hoe uw web-applicatie is 80 00:04:59,210 --> 00:05:04,350 gaan naar, zeg, authenticeren mensen of contante dingen of verbinding met de database. 81 00:05:04,350 --> 00:05:06,400 >> En wat echt behulpzaam is dat Laravel 82 00:05:06,400 --> 00:05:09,130 hiermee kunt u het opzetten van verschillende ontwikkelomgevingen. 83 00:05:09,130 --> 00:05:12,090 Dus wat we hier hebben gedaan is als We gaan onder de lokale map, 84 00:05:12,090 --> 00:05:14,720 er is een database.php bestand. 85 00:05:14,720 --> 00:05:18,320 En je zult hier opmerken dat wij het opzetten van een MySQL verbinding die 86 00:05:18,320 --> 00:05:22,230 maakt individuen te verbinden met de MySQL server die is 87 00:05:22,230 --> 00:05:24,310 direct op de CS50 apparaat. 88 00:05:24,310 --> 00:05:26,980 En waar we een verbinding met een database dat ik opgeroepen Blog50. 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> Dus laten we eigenlijk ga je gang en lopen de werkende versie van deze, 91 00:05:37,085 --> 00:05:39,710 alleen maar om een ​​gevoel van wat het te krijgen toepassing die we bouwen 92 00:05:39,710 --> 00:05:41,390 lijkt op. 93 00:05:41,390 --> 00:05:46,150 Dus ik heb een kopie van Dit Blog50 voltooid. 94 00:05:46,150 --> 00:05:51,910 Dus Laravel eigenlijk is gebouwd in een server 95 00:05:51,910 --> 00:05:53,910 die u direct kunt uitvoeren vanaf de opdrachtregel. 96 00:05:53,910 --> 00:05:56,900 Dus dit is vergelijkbaar met de Pset voordat wanneer u daadwerkelijk 97 00:05:56,900 --> 00:06:00,580 bouw je eigen server in C. Dus ze hebben een ingebouwd, zodat 98 00:06:00,580 --> 00:06:04,010 dat u uw Laravel apps kan draaien direct vanaf de opdrachtregel. 99 00:06:04,010 --> 00:06:11,650 >> Dus als we dat doen php artisan dienen, dit zal een ontwikkeling server te starten 100 00:06:11,650 --> 00:06:13,880 op poort 8000. 101 00:06:13,880 --> 00:06:18,250 Dus als we naar lokale host 8000, zult u merken dat, he. 102 00:06:18,250 --> 00:06:20,800 Wij hebben onze blog up and running. 103 00:06:20,800 --> 00:06:25,090 Dus Laravel hier genereert de voorpagina van onze blog. 104 00:06:25,090 --> 00:06:26,350 Zeer eenvoudige toepassing. 105 00:06:26,350 --> 00:06:28,610 Maar er is een paar echt handige functies 106 00:06:28,610 --> 00:06:31,346 dat de verschillende onder de motorkap. 107 00:06:31,346 --> 00:06:33,680 >> Dus de blog applicatie eenvoudig. 108 00:06:33,680 --> 00:06:36,430 Als we wilden een post te creëren, We kunnen op die knop klikt. 109 00:06:36,430 --> 00:06:40,470 We kunnen zeggen, "Hey, iedereen. 110 00:06:40,470 --> 00:06:44,530 Dit is een erg leuk seminar, "bijvoorbeeld. 111 00:06:44,530 --> 00:06:46,560 En schrijf hier iets naar beneden. 112 00:06:46,560 --> 00:06:48,180 Tekst hier. 113 00:06:48,180 --> 00:06:51,327 Als we op Verzenden klikt, zult u merken dat onze nieuwe blog 114 00:06:51,327 --> 00:06:53,410 bericht is toegevoegd aan de voorpagina van de blog. 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 Als we terug gaan, zult u merken dat Er zijn al enkele opmerkingen geweest 117 00:06:59,970 --> 00:07:01,160 op de blog. 118 00:07:01,160 --> 00:07:03,630 Dus als we naar beneden scrollen, dan heb je merken dat Jonathan Tan zegt 119 00:07:03,630 --> 00:07:08,020 dat hij erg was geïntrigeerd door dit bericht. 120 00:07:08,020 --> 00:07:11,570 >> Dus we in hoe object gaan relational mapping laat 121 00:07:11,570 --> 00:07:16,668 u om deze relaties te doen in een vrij naadloze manier ook. 122 00:07:16,668 --> 00:07:17,660 Cool. 123 00:07:17,660 --> 00:07:20,290 Heeft u vragen over de functionaliteit van wat we gaan bouwen? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 Cool. 126 00:07:23,840 --> 00:07:28,170 Dus laten we beginnen met het daadwerkelijk het maken van de database tabellen. 127 00:07:28,170 --> 00:07:33,190 >> Zo herinneren dat in CS50 Finance, je samen een tafel voor gebruikers 128 00:07:33,190 --> 00:07:37,100 alsmede voor de aandelen in uw portefeuille. 129 00:07:37,100 --> 00:07:41,040 Dus zoals we al eerder zagen, wat we gebruiken in Laravel 130 00:07:41,040 --> 00:07:43,090 is iets bekend als migraties. 131 00:07:43,090 --> 00:07:48,570 Dus als we terug gaan naar de verdeelsleutel hier, 132 00:07:48,570 --> 00:07:51,790 de eerste opdracht die is behulpzaam dat Laravel biedt u 133 00:07:51,790 --> 00:07:54,240 is dit migreren commando. 134 00:07:54,240 --> 00:07:59,220 Dus we kunnen php artisan migreren doen: maken. 135 00:07:59,220 --> 00:08:01,760 Dus dit laat ons toe om een ​​migratie te creëren. 136 00:08:01,760 --> 00:08:03,710 >> En dan zullen we willen om een ​​migratie te creëren 137 00:08:03,710 --> 00:08:07,050 riep create_posts_table, die gaat 138 00:08:07,050 --> 00:08:11,521 te zijn waar we gaan zijn de opslag van onze blog posts. 139 00:08:11,521 --> 00:08:14,690 En je zult hier opmerken dat het loopt door middel van een code die eigenlijk 140 00:08:14,690 --> 00:08:17,580 genereert een bestand een tijdstempel op. 141 00:08:17,580 --> 00:08:22,260 Dus als we gaan en kijken naar Database, we zullen zien onder Migraties 142 00:08:22,260 --> 00:08:24,830 dat het creëerde een lege file voor ons, die 143 00:08:24,830 --> 00:08:30,100 heeft standaardtekst code met de naam dat wij opgegeven, creëren berichten tafel. 144 00:08:30,100 --> 00:08:31,670 >> En het heeft twee functies in. 145 00:08:31,670 --> 00:08:40,539 Up is wat we willen, wanneer de run migratie wordt toegepast op de database. 146 00:08:40,539 --> 00:08:46,380 En beneden is wat we gaan doen als we willen een migratie te keren. 147 00:08:46,380 --> 00:08:49,890 Dus hier laten we beginnen met het schrijven van deze migratie. 148 00:08:49,890 --> 00:08:55,480 Dus er is een handige klasse in Laravel genoemd schema. 149 00:08:55,480 --> 00:08:57,910 >> Dus we gaan lopen Schema :: creëren. 150 00:08:57,910 --> 00:09:01,080 En we gaan creëren een tabel met de naam berichten. 151 00:09:01,080 --> 00:09:05,980 En hier zijn we dit toepassen met behulp van een functie. 152 00:09:05,980 --> 00:09:11,010 En binnen hier, we gaan eigenlijk geef de inhoud van onze tafel. 153 00:09:11,010 --> 00:09:14,860 We gaan om een ​​ID aan te maken, dat is auto-incrementing. 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> Daarnaast gaan we om een ​​veld te creëren dat 156 00:09:24,350 --> 00:09:27,060 vertegenwoordigt de titel van onze blog post. 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 We gaan ook een veld te creëren voor de tekst van onze blog post opslaan. 159 00:09:36,950 --> 00:09:40,600 En tot slot, we gaan om wat timestamps te slaan 160 00:09:40,600 --> 00:09:44,690 want als onze post werd gecreëerd en toen het werd bijgewerkt. 161 00:09:44,690 --> 00:09:46,240 En voor beneden, het is vrij eenvoudig. 162 00:09:46,240 --> 00:09:53,974 Alles wat we willen doen is druppel de tabel die we hebben gemaakt. 163 00:09:53,974 --> 00:09:54,930 >> Grote. 164 00:09:54,930 --> 00:09:55,850 Nog vragen? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 Dus nu als we gaan vooruit en-- eigenlijk, lokale host, 167 00:10:07,110 --> 00:10:09,640 laat me schrappen wat we vroeger hadden. 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 Ga naar Databases. 170 00:10:15,190 --> 00:10:17,640 Ik ga om te verwijderen wat we vroeger hadden. 171 00:10:17,640 --> 00:10:22,870 Drop deze en maak een nieuwe database Blog50. 172 00:10:22,870 --> 00:10:24,930 Dus wat nu de magische deel is hier dat we 173 00:10:24,930 --> 00:10:28,760 kan direct deze migraties van toepassing om de database met behulp van de opdrachtregel 174 00:10:28,760 --> 00:10:29,290 tool. 175 00:10:29,290 --> 00:10:35,100 Dus als we dat doen php ambachtelijke migreren, je zult merken dat, he. 176 00:10:35,100 --> 00:10:38,320 Het is gemaakt van de migratie tafel, waarin we een kijkje zullen nemen op in een beetje, 177 00:10:38,320 --> 00:10:40,540 en het wordt toegepast deze eerste migratie. 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> Dus we kijken naar Blog50, zult u merken dat het is gemaakt van twee tafels voor ons. 180 00:10:48,920 --> 00:10:50,300 Ten eerste is deze tabel migraties. 181 00:10:50,300 --> 00:10:54,130 Dus als we deze bladeren, zult u merken dat deze tabel is vrij eenvoudig. 182 00:10:54,130 --> 00:10:55,490 Het is gewoon gezegd dat, he. 183 00:10:55,490 --> 00:10:58,960 We hebben deze migratie toegepast. 184 00:10:58,960 --> 00:11:01,470 We gaan terug en kijk naar berichten. 185 00:11:01,470 --> 00:11:05,720 U zult merken dat de structuur is precies wat we hadden gevraagd. 186 00:11:05,720 --> 00:11:07,350 We hebben een auto-incrementing ID. 187 00:11:07,350 --> 00:11:10,450 We hebben een reeks voor het opslaan de titel, en een tekstveld 188 00:11:10,450 --> 00:11:11,450 voor het opslaan van de inhoud. 189 00:11:11,450 --> 00:11:14,040 190 00:11:14,040 --> 00:11:14,706 Grote. 191 00:11:14,706 --> 00:11:15,560 Cool. 192 00:11:15,560 --> 00:11:21,626 Heeft u vragen over migraties werken, hoe we ze kunnen toepassen? 193 00:11:21,626 --> 00:11:22,126 Nee? 194 00:11:22,126 --> 00:11:23,600 Cool. 195 00:11:23,600 --> 00:11:26,630 Dus nu gaan we om verder te gaan en eigenlijk maakt het model. 196 00:11:26,630 --> 00:11:33,100 Dus we willen een berichten model te maken dat slaat een abstractie van de database. 197 00:11:33,100 --> 00:11:41,040 Dus in plaats van het doen van MySQL queries direct, we gaan creëren. 198 00:11:41,040 --> 00:11:45,840 Dus moeten we een te maken map in hier genoemd modellen. 199 00:11:45,840 --> 00:11:48,905 En van binnen hier, we gaan maak een bestand genaamd post.php. 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> Binnen dit PHP-bestand, we gaan creëren 202 00:11:54,550 --> 00:12:00,590 een class post die welsprekende verlengt. 203 00:12:00,590 --> 00:12:08,950 Welsprekend is de naam van de ORM motor die Laravel biedt. 204 00:12:08,950 --> 00:12:12,799 En hier, zouden we verwachten dat je eigenlijk nodig hebt om wat code te schrijven. 205 00:12:12,799 --> 00:12:14,840 We gaan een aantal schrijven helper functies later. 206 00:12:14,840 --> 00:12:19,420 Maar uit de doos, zal al deze herkennen wat er in de databank 207 00:12:19,420 --> 00:12:24,770 en we toegang, zeggen de tekst van onze blog post of de titel, 208 00:12:24,770 --> 00:12:29,230 en spullen direct met creëren vrijwel geen code dan ook. 209 00:12:29,230 --> 00:12:31,110 >> Dus dat is een van de magische componenten. 210 00:12:31,110 --> 00:12:34,980 En wind eenmaal deze klasse is meer volwaardige, 211 00:12:34,980 --> 00:12:40,480 zullen we informatie over onder meer wat het is gerelateerd aan, zodat de opmerkingen. 212 00:12:40,480 --> 00:12:42,310 Ook het creëren van een functie dus we kunnen eigenlijk 213 00:12:42,310 --> 00:12:46,340 direct krijgen de URL van een blog post pagina. 214 00:12:46,340 --> 00:12:46,840 Cool. 215 00:12:46,840 --> 00:12:47,881 Heeft u vragen over dat? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 Nee. 218 00:12:51,832 --> 00:12:54,100 Cool. 219 00:12:54,100 --> 00:12:57,860 >> Dus nu een keer hebben we ons model, we willen een controller die is te creëren 220 00:12:57,860 --> 00:13:02,340 interageren met deze modellen, en vervolgens de database. 221 00:13:02,340 --> 00:13:05,540 Dus als we een kijkje nemen op BlogController, zult u 222 00:13:05,540 --> 00:13:08,490 opmerken dat er niet veel hier nu. 223 00:13:08,490 --> 00:13:13,220 Alles wat er is een index-functie dat genereert de homepage, 224 00:13:13,220 --> 00:13:18,220 maar zonder iets er worden weergegeven. 225 00:13:18,220 --> 00:13:20,560 >> Dus de eerste functie dat we gaan maken 226 00:13:20,560 --> 00:13:25,790 is er een die ons in staat stelt om een ​​blogpost te maken. 227 00:13:25,790 --> 00:13:30,540 Dus we gaan naar een te verklaren nieuwe functie genaamd newPost. 228 00:13:30,540 --> 00:13:36,430 En binnenin hier gewoon, we gaan aan de lay-out van deze pagina in te stellen 229 00:13:36,430 --> 00:13:41,850 te zijn een weergave versie, Misschien herinner je je van CS50, 230 00:13:41,850 --> 00:13:48,020 van deze sjabloon genaamd blog.new, die we gaan maken in een beetje. 231 00:13:48,020 --> 00:13:53,170 >> U zult hier opmerken op de lijn zes dat we gespecificeerde deze variabele, lay-out. 232 00:13:53,170 --> 00:13:55,820 En als we een kijkje nemen op de map Bekeken, 233 00:13:55,820 --> 00:14:01,640 er is een lay-outs map, die omvat een zeer eenvoudige HTML-bestand. 234 00:14:01,640 --> 00:14:04,680 En van de nota, zult u merken dat we deze container 235 00:14:04,680 --> 00:14:06,800 Hier die inhoud oplevert. 236 00:14:06,800 --> 00:14:09,460 Dus binnenkant van onze template wat we gaan doen 237 00:14:09,460 --> 00:14:16,180 wordt creëren wat gaat worden direct vervangen binnen deze lay-out. 238 00:14:16,180 --> 00:14:20,060 >> Dus hebben we gezegd dat we willen maken een sjabloon genaamd blog.new. 239 00:14:20,060 --> 00:14:23,790 Maar de binnenkant van Blog, er is nog niet deze nieuwe template. 240 00:14:23,790 --> 00:14:26,910 Dus we gaan naar het creëren van een bestand genaamd new.blade.php. 241 00:14:26,910 --> 00:14:29,860 Dit vertelt Laravel dat dit PHP bestand moet 242 00:14:29,860 --> 00:14:31,720 worden gemaakt met de blade template engine. 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 Dus dit is een redelijk ongecompliceerd bestand. 245 00:14:42,630 --> 00:14:46,690 Het gaat om de vorm waarin zijn we eigenlijk toe te voegen in een blogpost. 246 00:14:46,690 --> 00:14:49,220 >> Dus de magie hier van de overerving is dat, he. 247 00:14:49,220 --> 00:14:52,950 Wij willen aangeven dat de afdeling, de inhoud sectie 248 00:14:52,950 --> 00:14:56,640 Hier, en wordt begrensd doorsection enstop. 249 00:14:56,640 --> 00:15:02,260 Dus wat is in tussen hier gaat worden vervangen in de master-out. 250 00:15:02,260 --> 00:15:07,000 En hier wat wij willen doen is zeer eenvoudig een nieuwe HTML-bestand. 251 00:15:07,000 --> 00:15:08,690 Laten we voeg gewoon een snelle titel. 252 00:15:08,690 --> 00:15:09,600 Voeg een blog post. 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 En binnen het, we zijn naar een formulier. 255 00:15:15,390 --> 00:15:19,197 >> Dit formulier gaat om een ​​actie te hebben. 256 00:15:19,197 --> 00:15:21,780 En dit gaat iets te zijn we vervangingsproducten later 257 00:15:21,780 --> 00:15:24,200 en we zullen zien hoe routing past in hier. 258 00:15:24,200 --> 00:15:33,600 Maar we gaan gewoon te definiëren voor nu dat gaat naar een URL met de route 259 00:15:33,600 --> 00:15:34,860 uit createPost. 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 En dan gaat dit om methode Post hebben. 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 Binnen hier, we gaan twee velden. 264 00:15:47,590 --> 00:15:49,170 Div class = "form-groep". 265 00:15:49,170 --> 00:15:55,806 >> We gebruiken de Bootstrap CSS bibliotheek vriendelijk aangeboden door Twitter. 266 00:15:55,806 --> 00:15:57,720 Dus we gaan naar twee van deze te creëren. 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 Dus deze eerste ingang naar de titel. 269 00:16:05,970 --> 00:16:08,437 Dus input name = "titel". 270 00:16:08,437 --> 00:16:09,270 Class = "formcontrol". 271 00:16:09,270 --> 00:16:13,540 272 00:16:13,540 --> 00:16:14,425 Type = "text". 273 00:16:14,425 --> 00:16:16,050 Ik ga een placeholder = "Titel" toe te voegen. 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> En dan de tweede is gaat om een ​​tekst gebied. 276 00:16:26,140 --> 00:16:27,827 Name = "content". 277 00:16:27,827 --> 00:16:28,660 Class = "formcontrol". 278 00:16:28,660 --> 00:16:33,402 279 00:16:33,402 --> 00:16:34,610 En placeholder = "Schrijf hier". 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 Daar gaan we. 282 00:16:43,480 --> 00:16:46,760 Tot slot gaan we voeg een sneltoets in te dienen. 283 00:16:46,760 --> 00:16:50,370 Type = "submit" class = "btn btn-primaire". 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 Dus dit zijn allemaal kenmerken van Bootstrap zo 286 00:16:55,340 --> 00:16:58,510 dat dit kan worden vastgesteld op een manier die 287 00:16:58,510 --> 00:17:03,730 prooi aan de gebruiker, plaats naakt HTML. 288 00:17:03,730 --> 00:17:06,250 >> Dus hebben we de controller hier gedefinieerd. 289 00:17:06,250 --> 00:17:08,930 We hebben een zeer eenvoudige weergave gedefinieerd. 290 00:17:08,930 --> 00:17:12,339 Maar wat ontbreekt is het bindweefsel. 291 00:17:12,339 --> 00:17:15,420 Dus op dit punt, Laravel heeft geen idee hoe 292 00:17:15,420 --> 00:17:18,312 we gaan eigenlijk toegang tot deze controller. 293 00:17:18,312 --> 00:17:20,270 Dus dit is gedefinieerd in een bestand genaamd routes.php. 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 En op dit moment hebben we een route. 296 00:17:24,310 --> 00:17:29,060 Dat is wanneer we naar de thuis pad voor deze website, 297 00:17:29,060 --> 00:17:33,140 het gaat maken de index controller. 298 00:17:33,140 --> 00:17:38,880 Dus hier wat we moeten doen is het implementeren een nieuwe route voor ons om een ​​bericht te plaatsen. 299 00:17:38,880 --> 00:17:41,910 >> Dus gebruiken we deze methode krijgen, waarin wordt bepaald 300 00:17:41,910 --> 00:17:48,650 dat wanneer een gebruiker probeert krijg deze page-- specifiek 301 00:17:48,650 --> 00:17:52,850 de post slash nieuwe page-- wat we gaan doen 302 00:17:52,850 --> 00:18:02,060 wordt het gebruik van de controller genoemd BlogController nieuwe post. 303 00:18:02,060 --> 00:18:03,460 Degene die we net gemaakt. 304 00:18:03,460 --> 00:18:08,090 En dan gaan we om het alias als newPost. 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 We gaan naar een andere te maken functie in een klein beetje. 307 00:18:19,850 --> 00:18:23,520 Maar wat is hier onder de toets "als" is wat 308 00:18:23,520 --> 00:18:28,195 kunnen we in plaats onze Blade templates. 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 Dus voor nu, laten we eigenlijk ook route zeggen. 311 00:18:36,230 --> 00:18:38,380 Dus we gaan ook een bedieningseenheid 312 00:18:38,380 --> 00:18:41,020 zodat wij deze posten kunnen creëren. 313 00:18:41,020 --> 00:18:46,940 Dus als een gebruiker berichten naar de pagina bericht slash nieuw, wat we gaan doen 314 00:18:46,940 --> 00:18:51,350 is maakt gebruik van een controller die we gaan binnenkort te creëren 315 00:18:51,350 --> 00:18:56,160 riep BlogController bij createPost. 316 00:18:56,160 --> 00:19:01,929 En we gaan alias Dit met als createPost. 317 00:19:01,929 --> 00:19:03,380 Cool. 318 00:19:03,380 --> 00:19:05,811 >> Nog vragen? 319 00:19:05,811 --> 00:19:06,310 Cool. 320 00:19:06,310 --> 00:19:09,790 Dus laten we lopen wat we tot nu toe. 321 00:19:09,790 --> 00:19:16,930 Dus als we dat doen php ambachtelijke dienen, zullen we veel fouten zien. 322 00:19:16,930 --> 00:19:20,385 Dus het lijkt erop dat we hebben een syntax error op routes lijn 27. 323 00:19:20,385 --> 00:19:20,885 Ah. 324 00:19:20,885 --> 00:19:21,718 Het missen van een puntkomma. 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 Dus als we naar 8000, zie je nog niets hier. 327 00:19:32,870 --> 00:19:34,740 Dus dit is de standaard startpagina. 328 00:19:34,740 --> 00:19:37,730 >> Maar als we naar plaatsen slash nieuwe, he. 329 00:19:37,730 --> 00:19:40,425 Het zal de vorm die we net gemaakt zijn. 330 00:19:40,425 --> 00:19:42,550 Op dit moment hebben we geen geïmplementeerd functionaliteit 331 00:19:42,550 --> 00:19:44,060 van toen we druk op de knop Verzenden. 332 00:19:44,060 --> 00:19:47,110 Dus als we op de Submit knop, het gaat om een ​​fout te lopen. 333 00:19:47,110 --> 00:19:49,840 Maar we gaan naar code die nu, precies wat we 334 00:19:49,840 --> 00:19:54,840 willen doen wanneer een gebruiker legt dit formulier. 335 00:19:54,840 --> 00:19:55,770 >> Dus laten we dat doen. 336 00:19:55,770 --> 00:19:57,380 Ga terug naar de Controllers bestand. 337 00:19:57,380 --> 00:20:00,180 Wat we gaan doen is deze nieuwe functie uit te voeren 338 00:20:00,180 --> 00:20:04,360 die ons in staat stelt om een ​​bericht te plaatsen. 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 Verklaren nieuwe functie. 341 00:20:08,990 --> 00:20:11,527 Publieke functie createPost. 342 00:20:11,527 --> 00:20:14,610 En deze functie gaat om een ​​te zijn beetje meer verfijnd dan wat 343 00:20:14,610 --> 00:20:15,559 we hadden eerder. 344 00:20:15,559 --> 00:20:18,350 Maar je zult hier zien dat we niet gaan om daadwerkelijk te schrijven elke SQL. 345 00:20:18,350 --> 00:20:20,980 De ORM, de Eloquent ORM, gaat toestaan 346 00:20:20,980 --> 00:20:26,400 ons dit in sommige opzichten een meer elegante manier. 347 00:20:26,400 --> 00:20:29,140 >> Dus we gaan naar een nieuwe post te maken. 348 00:20:29,140 --> 00:20:34,120 En hier zijn we instantiëren van een nieuw object 349 00:20:34,120 --> 00:20:38,080 uit het model dat we net gecreëerd, de post-model. 350 00:20:38,080 --> 00:20:44,450 En wat we gaan doen is de title attribuut van dit gebruik van iets 351 00:20:44,450 --> 00:20:47,380 dat we krijgen van de server. 352 00:20:47,380 --> 00:20:52,060 Dus dit is vergelijkbaar met wat we eerder hadden in CS50 Financiën 353 00:20:52,060 --> 00:20:57,750 waar we zouden doen met de Super Global Bericht op zoek naar de titel. 354 00:20:57,750 --> 00:21:01,600 >> Dus Laravel biedt een aantal sanitaire voorzieningen en wat al niet met behulp van deze helper functie. 355 00:21:01,600 --> 00:21:07,610 Dus zouden we de voorkeur aan deze te gebruiken in plaats van deze zeer fundamentele ruwe vorm van PHP. 356 00:21:07,610 --> 00:21:17,430 En dan wat we gaan doen is ingesteld de inhoud van het aan Input krijgen inhoud. 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 We zijn eigenlijk aan de hand in te pakken dit in een handige functie 359 00:21:22,720 --> 00:21:31,820 dat PHP biedt genaamd nl2br, die draait nieuwe lijnen, NLS, in BRS, pauzes, 360 00:21:31,820 --> 00:21:35,822 zodat we daadwerkelijk kunnen hebben verschillende punten binnen het. 361 00:21:35,822 --> 00:21:38,030 En tenslotte wat we gaan te doen is het redden van dit bericht. 362 00:21:38,030 --> 00:21:41,686 Dus hebben we de functie noemen besparen op dit model. 363 00:21:41,686 --> 00:21:43,800 We gaan naar de post op te slaan. 364 00:21:43,800 --> 00:21:49,970 En tenslotte wat we gaan doen wordt redirect de gebruiker specifiek 365 00:21:49,970 --> 00:21:55,060 aan de route die we gaan creëren kort, alias door viewPost. 366 00:21:55,060 --> 00:22:00,435 En we gaan pas in de argumenten id, zijnde de id van deze nieuwe post. 367 00:22:00,435 --> 00:22:04,280 368 00:22:04,280 --> 00:22:05,640 >> Grote. 369 00:22:05,640 --> 00:22:09,090 Dus nu, als we daadwerkelijk te gaan en lopen dit. 370 00:22:09,090 --> 00:22:11,370 We gaan een nieuw bericht toe te voegen. 371 00:22:11,370 --> 00:22:15,930 Laten we zeggen dat dit seminar 50. 372 00:22:15,930 --> 00:22:17,620 En zeg, zeker. 373 00:22:17,620 --> 00:22:18,240 ADSL. 374 00:22:18,240 --> 00:22:18,740 Boeiend. 375 00:22:18,740 --> 00:22:20,320 Een soort van content. 376 00:22:20,320 --> 00:22:21,180 En legt dit. 377 00:22:21,180 --> 00:22:23,850 En we merken dat, hey. routes niet gedefinieerd. 378 00:22:23,850 --> 00:22:32,340 Maar als we een kijkje nemen op phpMyAdmin en kijk voor het al dan niet onze functie 379 00:22:32,340 --> 00:22:34,370 iets deed. 380 00:22:34,370 --> 00:22:36,670 Kijk naar Blog50 berichten. 381 00:22:36,670 --> 00:22:37,720 We zullen merken dat, he. 382 00:22:37,720 --> 00:22:43,530 In feite hebben we gewoon te maken dat blog posten met de timestamps zoals gespecificeerd. 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> Dus laten we nu terug gaan en echt aan te maken deze andere functie in onze controller, 385 00:22:51,630 --> 00:22:54,790 specifiek de viewPost controller. 386 00:22:54,790 --> 00:23:00,290 Dus publieke functie viewPost. 387 00:23:00,290 --> 00:23:04,070 Dus hier wat we zullen doen, in plaats van het hebben van lege haakjes, 388 00:23:04,070 --> 00:23:08,800 we zullen langs wilt op de ID van de post die we creëren. 389 00:23:08,800 --> 00:23:12,800 En vanaf hier wat we gaan doen is eigenlijk de database voor. 390 00:23:12,800 --> 00:23:15,140 >> Dus als we het plaatsen, er is een functie genaamd 391 00:23:15,140 --> 00:23:18,860 Vinden dat ons in staat stelt om het te doorzoeken met ID. 392 00:23:18,860 --> 00:23:22,110 In het bijzonder, eigenlijk, we gaan Gebruik een alternatieve versie van deze zogenaamde 393 00:23:22,110 --> 00:23:27,880 Vinden of Fail, die ons in staat stelt om te stoppen uit deze functie, 394 00:23:27,880 --> 00:23:34,700 gooi een uitzondering wanneer de ID passeren we in bestaat niet. 395 00:23:34,700 --> 00:23:37,500 En dan gaan we iets doen vergelijkbaar met wat we eerder deden 396 00:23:37,500 --> 00:23:41,100 waar we de inhoud van deze pagina te zijn 397 00:23:41,100 --> 00:23:47,950 de gerenderde versie van deze nieuwe visie die we gaan maken, blog.view. 398 00:23:47,950 --> 00:23:51,030 >> En we gaan overgaan in het-- net als in de CS50 maken 399 00:23:51,030 --> 00:23:56,645 function-- een woordenboek van variabelen. 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 De sleutels van deze associatieve array geworden variabelen binnen de template. 402 00:24:04,620 --> 00:24:06,830 Dus we gaan Bericht doen. 403 00:24:06,830 --> 00:24:12,474 Zo passeren indirect de post die we hebben opgevraagd uit de database. . 404 00:24:12,474 --> 00:24:14,390 Nu, wat we gaan doen is het creëren van deze visie 405 00:24:14,390 --> 00:24:17,560 zodat we daadwerkelijk kunnen bekijken de blog posts die we hebben opgebouwd. 406 00:24:17,560 --> 00:24:20,280 >> Dus we gaan naar het creëren van een bestand genaamd view.blade.php. 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 Dus binnenkant van deze sjabloon, wat we gaan doen 409 00:24:29,640 --> 00:24:39,700 wordt samen een eenvoudige pagina die stelt ons in staat om de inhoud weer te geven. 410 00:24:39,700 --> 00:24:44,280 Dus we deel doen, dat is voor de inhoud. 411 00:24:44,280 --> 00:24:46,800 Stoppen. 412 00:24:46,800 --> 00:24:53,920 En wat we gaan te doen hier binnen is 413 00:24:53,920 --> 00:24:56,930 schrijven een aantal HTML om deze pagina weer te geven. 414 00:24:56,930 --> 00:25:03,590 >> Dus we gaan het wrap met een fancy nieuwe HTML5 element genoemd artikel. 415 00:25:03,590 --> 00:25:05,790 En hier, we gaan een koptekst waar hebben 416 00:25:05,790 --> 00:25:12,190 we gaan gewoon een h1, waaronder de post titel. 417 00:25:12,190 --> 00:25:17,120 Dus hier, als we kijken naar deze dubbele accolade-notatie, 418 00:25:17,120 --> 00:25:21,690 Dit zal hoofdzakelijk doen PHP echo na de titel. 419 00:25:21,690 --> 00:25:25,630 Dus het is een nuttig steno dat Laravel biedt ons. 420 00:25:25,630 --> 00:25:31,070 Dus we gaan gebruiken deze notatie plaats. 421 00:25:31,070 --> 00:25:40,220 >> En hier, we gaan ook afdruk van de inhoud ervan. 422 00:25:40,220 --> 00:25:43,480 En hier, we gaan naar inhoud post doen. 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 En neer op de bodem wat we gaan doen, is het creëren van een voettekst. 425 00:25:50,660 --> 00:25:57,690 En in de voettekst, gaan we eerste display wanneer deze is geplaatst. 426 00:25:57,690 --> 00:26:01,320 Dus dit werd gepost op, gemaakt op. 427 00:26:01,320 --> 00:26:07,996 >> En Laravel maakt gebruik van een heel mooi date bibliotheek genaamd Carbon. 428 00:26:07,996 --> 00:26:11,120 Dus we kunnen eigenlijk iets genaamd doen difforHumans, die u eerder zag. 429 00:26:11,120 --> 00:26:14,360 Wanneer we geplaatst. het zal zeggen, als, vijf seconden geleden. 430 00:26:14,360 --> 00:26:16,860 Dus dit is echt een leuke functionaliteit van Laravel. 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 En tot slot, we gaan deze voettekst sluiten. 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> Dus nu als we terug gaan naar Startpagina we gaan 435 00:26:31,450 --> 00:26:34,490 niets hier nog omdat zien we hebben niet gecodeerd op de home page. 436 00:26:34,490 --> 00:26:40,962 Maar als we naar slash een bericht te plaatsen, we gaan om een ​​uitzondering te zien. 437 00:26:40,962 --> 00:26:42,670 Weet iemand waarom zien we een uitzondering? 438 00:26:42,670 --> 00:26:44,516 Wat missen we? 439 00:26:44,516 --> 00:26:45,290 Het even welke ideeën? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 Dus wat deden we doen eerder voor ons eigenlijk 442 00:26:49,790 --> 00:26:52,285 om te bepalen hoe we naar bijzonder controllers? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> SPEAKER 1: De route? 445 00:26:55,770 --> 00:26:56,519 ERIC Ouyang: Ja. 446 00:26:56,519 --> 00:26:58,070 Dus we hebben nog steeds om de route te bepalen. 447 00:26:58,070 --> 00:26:59,794 Dus gaan we hier terug naar routes.php. 448 00:26:59,794 --> 00:27:01,710 Je zult zien dat we merken heb eigenlijk niet gedefinieerd 449 00:27:01,710 --> 00:27:05,010 hoe we gaan krijgen om deze controller. 450 00:27:05,010 --> 00:27:06,780 Dus nu gaan we om deze route te bepalen. 451 00:27:06,780 --> 00:27:09,280 Het is vrij eenvoudig, vergelijkbaar met wat we eerder deden. 452 00:27:09,280 --> 00:27:13,910 Maar wat we gaan hier opvalt is dat we gaan om een ​​tijdelijke aanduiding te hebben. 453 00:27:13,910 --> 00:27:18,730 >> Dus als we dat doen route.get slash bericht ID. 454 00:27:18,730 --> 00:27:24,290 Dus ID is nu wat er gaat worden doorgegeven aan de controller. 455 00:27:24,290 --> 00:27:27,820 Dit gaat om het gebruik van controller die we net 456 00:27:27,820 --> 00:27:33,560 geschapen, BlogController op viewPost. 457 00:27:33,560 --> 00:27:36,420 En we gaan alias dit als viewPost. 458 00:27:36,420 --> 00:27:46,544 459 00:27:46,544 --> 00:27:47,490 Grote. 460 00:27:47,490 --> 00:27:49,470 Dus nu gaan we om deze route te creëren. 461 00:27:49,470 --> 00:27:52,100 >> Dus nu, als we hier gaan en vernieuw deze pagina 462 00:27:52,100 --> 00:27:54,410 we in feite hebben onze nieuwe blog post. 463 00:27:54,410 --> 00:27:57,710 Dus dit is wat we eerder hebt gemaakt. 464 00:27:57,710 --> 00:28:01,320 Zeer eenvoudige pagina, maar geeft de blogpost dat we zojuist hebt gemaakt. 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 Cool. 467 00:28:04,760 --> 00:28:08,880 En als we daadwerkelijk gaan door het hele proces van het creëren van een nieuwe blog post, 468 00:28:08,880 --> 00:28:11,700 we zullen dat alles merken redirects naar behoren. 469 00:28:11,700 --> 00:28:12,950 Als ik zeg: "Hallo. 470 00:28:12,950 --> 00:28:15,710 Ik ben Jonathan Tan. " 471 00:28:15,710 --> 00:28:18,550 Zeggen: "Dit is mijn blog post." 472 00:28:18,550 --> 00:28:22,830 En legt dit, dit zal leiden tot deze nieuwe blog post met ID 2, 473 00:28:22,830 --> 00:28:28,920 welke stappen van wat we hadden eerder en geeft het goed. 474 00:28:28,920 --> 00:28:30,760 Geweldig. 475 00:28:30,760 --> 00:28:32,930 >> Nog vragen? 476 00:28:32,930 --> 00:28:33,430 Ja? 477 00:28:33,430 --> 00:28:36,537 >> SPEAKER 2: Heeft Laravel handvat sanering en alles voor u? 478 00:28:36,537 --> 00:28:37,245 ERIC Ouyang: Ja. 479 00:28:37,245 --> 00:28:42,990 Dus toen we eerder toen zagen we deden ingang colon colon te krijgen, 480 00:28:42,990 --> 00:28:47,720 dat sanitates elke SQL injecties en wat al niet 481 00:28:47,720 --> 00:28:51,660 opdat wij zouden willen uitvoeren als we zijn een kwaadwillende gebruiker van de website. 482 00:28:51,660 --> 00:28:54,115 Dus Laravel behandelt veel van die achter de schermen. 483 00:28:54,115 --> 00:28:57,030 Goede vraag. 484 00:28:57,030 --> 00:29:00,390 >> Dus laten we eens een kijkje nemen op de homepage. 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 Dus als we eerst terug naar de controller voor de home page, 487 00:29:06,790 --> 00:29:08,740 je zult merken dat het niet veel hier doen. 488 00:29:08,740 --> 00:29:11,620 U zult merken dat we niet passeren in deze controller 489 00:29:11,620 --> 00:29:13,830 iets bijzonder behulpzaam. 490 00:29:13,830 --> 00:29:16,660 Het is gewoon deze index-bestand. 491 00:29:16,660 --> 00:29:18,770 >> Dus laten we overgaan in dit iets nuttig. 492 00:29:18,770 --> 00:29:21,450 En in het bijzonder, zijn we gaat pas in berichten. 493 00:29:21,450 --> 00:29:28,740 En Laravel laat ons om na te doen alles, wat 494 00:29:28,740 --> 00:29:30,625 zal ons toelaten om alle berichten te krijgen. 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 Nu als we terug te gaan index.php, zie je, he. 497 00:29:35,730 --> 00:29:37,060 Nog niets hier. 498 00:29:37,060 --> 00:29:41,290 Maar wat we hier willen doen is eigenlijk doorlopen, 499 00:29:41,290 --> 00:29:46,420 doe een foreach lus over de berichten dat stelt ons in staat om af te drukken uit de berichten. 500 00:29:46,420 --> 00:29:53,180 >> Dus foreach berichten als post, wat we willen doen 501 00:29:53,180 --> 00:29:57,252 wordt de inhoud uit te printen van de blog post. 502 00:29:57,252 --> 00:30:00,210 Maar een ding dat je zal opvallen is dat we eigenlijk schreef de meeste van die code 503 00:30:00,210 --> 00:30:01,370 al, in view.blade.php. 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 Dus wat gaan we eigenlijk doen is gebruik maken van een mooie handige functie van Blade 506 00:30:08,640 --> 00:30:11,300 en factor uit deze gemeenschappelijke code. 507 00:30:11,300 --> 00:30:12,570 Dus we gaan hier. 508 00:30:12,570 --> 00:30:16,210 >> We gaan deze inhoud te hier, en wat we gaan doen 509 00:30:16,210 --> 00:30:18,170 is een nieuwe map te maken. 510 00:30:18,170 --> 00:30:20,364 Laten we noemen het Partials. 511 00:30:20,364 --> 00:30:22,530 En hier, we gaan een post.blade.php maken. 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 Dus hier, we meegenomen uit de manier die willen we deze berichten weer te geven. 514 00:30:33,100 --> 00:30:38,690 En hier wat we gaan doen in plaats van eigenlijk met die HTML rechtstreeks, 515 00:30:38,690 --> 00:30:41,530 we gaan deze richtlijn gebruiken genoemd onder blog.partials.post. 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> En wat we hier gaan doen is pas in de post van de pagina. 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 Dus nu, als we hier terug te gaan, zullen we merken dat de functionaliteit is nog steeds 520 00:31:01,050 --> 00:31:01,550 hetzelfde. 521 00:31:01,550 --> 00:31:05,140 Maar nu hebben we dit wegvalt code, deze HTML. 522 00:31:05,140 --> 00:31:07,070 Dus we kunnen gebruiken in Index. 523 00:31:07,070 --> 00:31:09,090 Dus hier, dit is zeer eenvoudig. 524 00:31:09,090 --> 00:31:17,870 Alles wat we doen is onder andere blog.partials.post en array. 525 00:31:17,870 --> 00:31:20,845 En ergens te vóór, doen we Bericht. 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> Dus nu als we terug gaan naar de startpagina, dan zien we dat, he. 528 00:31:28,182 --> 00:31:30,515 We hebben een lijst van alle blog posts die we eerder hadden. 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 We zouden willen toevoegen wat "als" voorwaarden en "anders" voorwaarden 531 00:31:37,700 --> 00:31:39,979 dus dat als we niet hebben iets op de blog, 532 00:31:39,979 --> 00:31:41,520 we iets willen behulpzaam te geven. 533 00:31:41,520 --> 00:31:42,570 Zoals, hey. 534 00:31:42,570 --> 00:31:44,340 Er is nog geen content op de blog. 535 00:31:44,340 --> 00:31:47,670 En als jullie eigenlijk kijkt naar de distributie code op GitHub, 536 00:31:47,670 --> 00:31:50,100 zult u een voorbeeld van hoe we dat doen zien. 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> Cool. 539 00:31:54,110 --> 00:31:54,890 Nog vragen? 540 00:31:54,890 --> 00:31:55,510 Ja. 541 00:31:55,510 --> 00:31:57,468 >> SPEAKER 2: Ik denk gewoon een fundamentele vraag. 542 00:31:57,468 --> 00:31:59,480 Terug op de route. 543 00:31:59,480 --> 00:32:00,230 ERIC Ouyang: Ja. 544 00:32:00,230 --> 00:32:01,935 Als we een kijkje nemen op routes. 545 00:32:01,935 --> 00:32:06,018 >> SPEAKER 2: Waar komt de uses.blogcontroller bij creëren post, 546 00:32:06,018 --> 00:32:07,560 wat heeft dat ons direct naar? 547 00:32:07,560 --> 00:32:08,310 ERIC Ouyang: Ja. 548 00:32:08,310 --> 00:32:08,550 Yeah. 549 00:32:08,550 --> 00:32:09,716 >> SPEAKER 2: Of wat is dat-- 550 00:32:09,716 --> 00:32:12,620 ERIC Ouyang: Dus, neem een ​​kijkje, zeggen bijvoorbeeld, deze route hier. 551 00:32:12,620 --> 00:32:17,190 Het eerste deel is de eigenlijke URL die de gebruiker zal gaan. 552 00:32:17,190 --> 00:32:19,930 En deze array hier, associatieve array, definieert 553 00:32:19,930 --> 00:32:24,520 hoe willen we het hebben toepassing handelen in reactie op het. 554 00:32:24,520 --> 00:32:29,090 Dus gebruikt is de controller, de functie die we 555 00:32:29,090 --> 00:32:31,610 wilt bellen wanneer een gebruiker naar deze URL. 556 00:32:31,610 --> 00:32:35,190 Dus viewPost hier was een functie die we binnen gedefinieerd 557 00:32:35,190 --> 00:32:36,100 van BlogController-- 558 00:32:36,100 --> 00:32:37,160 >> SPEAKER 2: Ik zie. 559 00:32:37,160 --> 00:32:39,368 >> ERIC Ouyang: -SO dat wij kan eigenlijk maken het oog, 560 00:32:39,368 --> 00:32:42,590 presteren sommige berekeningen, interactie met de SQL-database. 561 00:32:42,590 --> 00:32:43,560 >> SPEAKER 2: OK. 562 00:32:43,560 --> 00:32:46,960 >> ERIC Ouyang: En dan de andere gedeeltelijk "als" is een alias die we gebruiken. 563 00:32:46,960 --> 00:32:50,714 Dus als we merken wanneer hebben we de vorm, 564 00:32:50,714 --> 00:32:52,380 je zult zien dat URL merken :: routecreatePost. 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 Dus het vervangt in de feitelijke URL, zodat we niet moeilijk 567 00:32:58,330 --> 00:33:02,940 coderen deze in zodat we het kunnen veranderen een keer, zeggen als we wilden een andere naam geven. 568 00:33:02,940 --> 00:33:06,055 In plaats van de post slash nieuw, we willen doen, zoals, p 569 00:33:06,055 --> 00:33:09,490 slash nieuw gewoon schoon te maken onze URL's een beetje. 570 00:33:09,490 --> 00:33:14,740 We zouden het te veranderen in een plek vrij dan tussen alle verschillende bestanden. 571 00:33:14,740 --> 00:33:15,451 >> Cool. 572 00:33:15,451 --> 00:33:15,950 Dat is goed. 573 00:33:15,950 --> 00:33:20,070 Dus nu hebben we een zeer basic blog platform. 574 00:33:20,070 --> 00:33:24,260 We willen waarschijnlijk toe te voegen in een knop, zodat dat we eigenlijk kunnen creëren van nieuwe berichten. 575 00:33:24,260 --> 00:33:27,850 Dus als we een kijkje nemen op de Layout Master, 576 00:33:27,850 --> 00:33:31,280 we hebben een afdeling genaamd Header Right dat we net hebt gedefinieerd aan de top. 577 00:33:31,280 --> 00:33:34,820 Dus we kunnen toetsen toe te voegen de bovenkant van de kop. 578 00:33:34,820 --> 00:33:43,950 >> Dus als we naar index.blade.php, eigenlijk doen, is bepalen wat er binnen van hier. 579 00:33:43,950 --> 00:33:46,970 Dus dit gedeelte Header Right, wat we gaan doen 580 00:33:46,970 --> 00:33:55,240 is toe te voegen in een knop om naar de URL gedefinieerd door de route nieuwe post. 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 Gewoon om het schoon te maken en maak het vrij en al Bootstrap, 583 00:34:01,660 --> 00:34:04,630 we gaan ervoor dit een standaard knop. 584 00:34:04,630 --> 00:34:07,794 Laten we het grote voor de lol te maken net. 585 00:34:07,794 --> 00:34:09,969 >> En binnen is, kunnen we wat tekst zetten. 586 00:34:09,969 --> 00:34:14,030 Maar wat Bootstrap biedt, is glyphicons. 587 00:34:14,030 --> 00:34:17,840 Dus we kunnen daadwerkelijk toe te voegen in die leuke potlood dat we eerder zagen. 588 00:34:17,840 --> 00:34:20,570 589 00:34:20,570 --> 00:34:21,781 Glyphicon. 590 00:34:21,781 --> 00:34:22,489 Glyphicon-potlood. 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 Dus zal dit ons toelaten om te zetten een icoon in plaats van tekst. 593 00:34:35,340 --> 00:34:38,960 Nu als we stoppen, dit zal deze sectie definiëren. 594 00:34:38,960 --> 00:34:39,460 En, hey. 595 00:34:39,460 --> 00:34:45,000 We hebben een mooie knop die ons verbindt direct naar de voeg een blog post pagina. 596 00:34:45,000 --> 00:34:46,659 >> Dus we hebben een vrij eenvoudige blog. 597 00:34:46,659 --> 00:34:49,710 We kunnen dingen aan toe te voegen. 598 00:34:49,710 --> 00:34:53,650 Maar wat we in het algemeen verwachten van blogs is commentaar. 599 00:34:53,650 --> 00:34:57,340 Dus het is echt belangrijk voor ons om te hebben, zeggen, als iemand anders een website bezoekt 600 00:34:57,340 --> 00:35:00,620 en echt houdt van de post die ze kunnen deelnemen aan de discussie 601 00:35:00,620 --> 00:35:03,100 met andere mensen die de pagina bezoekt. 602 00:35:03,100 --> 00:35:07,050 Dus we gaan om te gaan en maak een nieuwe database tabel en een nieuw model 603 00:35:07,050 --> 00:35:12,220 zodat we kunnen associëren commentaar bij de berichten. 604 00:35:12,220 --> 00:35:17,370 >> Dus de eerste stap, net als vroeger, is dat we nodig hebben om een ​​migratie uit te voeren. 605 00:35:17,370 --> 00:35:21,982 Dus als voorheen, we doen php artisan migreren: maak. 606 00:35:21,982 --> 00:35:24,440 En we gaan er een te maken riep create_comments_table. 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 Dit zal een bestand te maken dat heeft ons nieuwe migratie. 609 00:35:36,080 --> 00:35:40,170 En we gaan, zoals vóór, definieert u een nieuwe tabel. 610 00:35:40,170 --> 00:35:42,773 Dus Schema :: maak een tabel met de naam opmerkingen. 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 Deze functie hier. 613 00:35:48,430 --> 00:35:51,620 En binnen deze tabel wat we gaan doen is de eerste, 614 00:35:51,620 --> 00:35:54,260 zoals vroeger, wijst u een ID. 615 00:35:54,260 --> 00:35:56,552 Verhoogt ID. 616 00:35:56,552 --> 00:36:05,440 >> We gaan om gebruikers in staat te associëren hun naam met een bepaalde reactie. 617 00:36:05,440 --> 00:36:10,080 We gaan enkele inhoud hebben dat gaat samen met deze, tekstinhoud. 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 En hier wat we gaan doen is iets anders. 620 00:36:15,910 --> 00:36:23,620 We gaan naar een integer creëren dat is post_id genoemd die 621 00:36:23,620 --> 00:36:32,100 gaat om wat na te duiden een bepaalde reactie gaat met. 622 00:36:32,100 --> 00:36:35,410 >> Daarnaast zijn we eigenlijk gaan stel een foreign key beperking op dit punt. 623 00:36:35,410 --> 00:36:37,750 Dus MySQL zal afdwingen dat. 624 00:36:37,750 --> 00:36:39,840 We proberen niet om toewijzen reactie nummer 625 00:36:39,840 --> 00:36:44,440 5 bij post 5000 als we niet had 5.000 berichten op. 626 00:36:44,440 --> 00:36:50,240 Dus wat we hier doen, we doen buitenlandse post_id 627 00:36:50,240 --> 00:37:02,046 zal worden verbonden het ID veld uit de tabel berichten. 628 00:37:02,046 --> 00:37:05,900 En we daadwerkelijk iets te doen anders behulpzaam, is OnDelete. 629 00:37:05,900 --> 00:37:11,180 >> Dus als we verwijder enkele berichten uit de database, 630 00:37:11,180 --> 00:37:15,507 dat we willen de cascade schrapt voor commentaar ook. 631 00:37:15,507 --> 00:37:18,090 Want het is niet erg behulpzaam voor ons om te reageren op berichten hebben 632 00:37:18,090 --> 00:37:19,900 die niet bestaan. 633 00:37:19,900 --> 00:37:23,764 En tot slot, als voorheen, we zijn ga tijdstempels te stellen op dit punt. 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 En net als voorheen, we gaan hebben het omgekeerde migratie 636 00:37:33,510 --> 00:37:37,920 laten vallen van de tafel opmerkingen. 637 00:37:37,920 --> 00:37:40,070 >> Dus nu als we terug gaan hier, we gaan 638 00:37:40,070 --> 00:37:43,110 om deze migratie, ambachtelijke migreren draaien. 639 00:37:43,110 --> 00:37:46,400 En nu is het deze toegepast migratie die we net gemaakt. 640 00:37:46,400 --> 00:37:50,080 Dus als we een kijkje bij phpMyAdmin, wij, in feite, nu 641 00:37:50,080 --> 00:37:53,210 hebben een commentaar tabel die het heeft structuur die we gewoon opgegeven. 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 Dus als voorheen, we zijn gaan naar een nieuw model te maken 644 00:37:59,610 --> 00:38:04,450 om abstracte de SQL-tabel dat we zojuist hebt gemaakt. 645 00:38:04,450 --> 00:38:05,450 >> Dus laten we Voeg een nieuw bestand. 646 00:38:05,450 --> 00:38:06,908 We gaan noemen comment.php. 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 En dit is in feite gaat om vrij te zijn eenvoudig met een kleine verandering 649 00:38:15,490 --> 00:38:17,520 van wat we hadden eerder. 650 00:38:17,520 --> 00:38:22,790 Dus klasse Reactie breidt Eloquent. 651 00:38:22,790 --> 00:38:25,930 En wat we gaan om hier te doen is te definiëren 652 00:38:25,930 --> 00:38:31,360 een functie die de relatie met andere modellen. 653 00:38:31,360 --> 00:38:39,250 Dus we gaan naar een post-functie hebben hier dat deze relatie terugkeert. 654 00:38:39,250 --> 00:38:43,330 Dus we geven dat dit behoort te plaatsen, 655 00:38:43,330 --> 00:38:49,200 zeggen dat er een post dat deze reactie behoort. 656 00:38:49,200 --> 00:38:53,917 >> Dit heeft eigenlijk zijn vermogen P voor het model. 657 00:38:53,917 --> 00:38:56,500 En nu net aan de andere flip kant, we moeten zeggen dat, he. 658 00:38:56,500 --> 00:38:58,160 Berichten opmerkingen. 659 00:38:58,160 --> 00:39:03,030 Dus wat we gaan doen is definiëren publieke functie opmerkingen. 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 En hier wordt teruggegeven Dit heeft veel reactie. 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 Dus nu op magische wijze wanneer we een post, we kunnen het attribuut commentaren te krijgen 664 00:39:22,010 --> 00:39:25,615 en het zal het vullen met de uit de database. 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> Dus laten we eigenlijk gaan door en voeg een nieuwe functie aan onze mening bestand 667 00:39:38,220 --> 00:39:43,600 Zodat we zowel het beeldscherm en creëren commentaar. 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 Dus we gaan naar een nieuwe sectie te definiëren. 670 00:39:56,865 --> 00:39:59,890 Laten we gewoon scheiden met een horizontale lijn. 671 00:39:59,890 --> 00:40:04,065 Sectie id = "opmerkingen". 672 00:40:04,065 --> 00:40:06,990 Wat we gaan doen hier is, net als voorheen, 673 00:40:06,990 --> 00:40:09,880 doorloopt alle opmerkingen. 674 00:40:09,880 --> 00:40:12,960 Dus eigenlijk hoe we dit doen is, zoals ik al zei, vrij magisch. 675 00:40:12,960 --> 00:40:14,440 >> Wij doen opmerkingen plaatsen. 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 En dan kunnen we dit voor elkaar te doen lus over elk van de opmerkingen. 678 00:40:22,710 --> 00:40:25,740 En wat we gaan doen is div class commentaar, 679 00:40:25,740 --> 00:40:29,240 en we gaan eigenlijk print deze reactie. 680 00:40:29,240 --> 00:40:34,150 Dus weer dat hey, commentaar name-- de persoon 681 00:40:34,150 --> 00:40:38,080 wie dit gepost comment-- zegt dot dot dot. 682 00:40:38,080 --> 00:40:41,240 We gaan dit in een blok te zetten citaat, gewoon om het er leuk uit. 683 00:40:41,240 --> 00:40:46,470 En dan commentaar inhoud blokcitaat. 684 00:40:46,470 --> 00:40:49,790 685 00:40:49,790 --> 00:40:50,892 En foreach. 686 00:40:50,892 --> 00:40:53,100 Dus nu dit gaat lus door alle reacties 687 00:40:53,100 --> 00:40:56,500 dat is geassocieerd elk van de posten 688 00:40:56,500 --> 00:41:00,960 en geven elk van deze opmerkingen. 689 00:41:00,960 --> 00:41:05,120 Ik ga naar een ander deel naar beneden toe te voegen hier, die ons in staat stelt om een ​​reactie toe te voegen. 690 00:41:05,120 --> 00:41:07,400 Dus h3 class. 691 00:41:07,400 --> 00:41:09,580 Zet hier een titel. 692 00:41:09,580 --> 00:41:10,934 Voeg een reactie. 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 En we gaan naar een nieuwe vorm te definiëren. 695 00:41:15,700 --> 00:41:18,730 >> Dus als voorheen, we zijn ga formulier actie te doen. 696 00:41:18,730 --> 00:41:22,740 En hier, de nieuwe actie is dat we gaan naar een nieuwe controller te definiëren die 697 00:41:22,740 --> 00:41:26,770 stelt ons in staat om te reageren op berichten verzoeken voor het maken opmerkingen. 698 00:41:26,770 --> 00:41:33,365 Dus URL :: route createComment. 699 00:41:33,365 --> 00:41:37,730 Ik ga hier in de parameter door te geven. 700 00:41:37,730 --> 00:41:40,380 De id van de post die we zijn het creëren van commentaar op. 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 En dan de werkwijze volgens vorm gaat na te zijn. 703 00:41:50,280 --> 00:41:57,240 >> Nu gaan we naar toe in een twee velden, vorm groep. 704 00:41:57,240 --> 00:42:04,670 Dit gaat om een ​​ingang met de te te noemen "naam" en class = "form-control", 705 00:42:04,670 --> 00:42:14,250 type = "text", en met de placeholder = "Uw naam." 706 00:42:14,250 --> 00:42:19,380 We gaan ook definiëren andere vorm veld, dat 707 00:42:19,380 --> 00:42:22,970 gaat om een ​​tekst te zijn gebied als we hadden voorheen. 708 00:42:22,970 --> 00:42:25,480 Net als vroeger, noem het inhoud. 709 00:42:25,480 --> 00:42:31,160 Class = "form-controle." 710 00:42:31,160 --> 00:42:41,660 Placeholder = "Schrijf hier." 711 00:42:41,660 --> 00:42:44,100 >> En gewoon zo dat we daadwerkelijk kan indienen, 712 00:42:44,100 --> 00:42:55,740 submit type en class = "btn btn-primaire." 713 00:42:55,740 --> 00:42:57,005 Sluit het formulier. 714 00:42:57,005 --> 00:42:59,010 Sluit deze actie. 715 00:42:59,010 --> 00:43:06,580 Dus nu als we deze pagina waar vernieuwen we hebben, laten we zeggen, een bepaalde functie. 716 00:43:06,580 --> 00:43:10,310 We moeten naar de server rebooten. 717 00:43:10,310 --> 00:43:12,340 PHP ambachtelijke dienen. 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 Reboot dit. 720 00:43:18,334 --> 00:43:19,500 We hebben de route definiëren. 721 00:43:19,500 --> 00:43:25,090 Maar voor nu, laten we dit neemt gewoon uit, zodat we je daadwerkelijk kunt zien 722 00:43:25,090 --> 00:43:28,750 wat de pagina eruit ziet, en dan we eigenlijk te creëren die route. 723 00:43:28,750 --> 00:43:29,250 Dus, hey. 724 00:43:29,250 --> 00:43:37,080 Wij hebben dit nieuwe formulier hier beneden zodat we kunnen opmerkingen maken. 725 00:43:37,080 --> 00:43:39,950 Dus laten we eigenlijk een te definiëren functie binnen de controller 726 00:43:39,950 --> 00:43:43,020 zodat we opmerkingen kunnen toevoegen. 727 00:43:43,020 --> 00:43:43,650 Laten we terug gaan. 728 00:43:43,650 --> 00:43:48,420 En binnen blogcontroller.php, wat we gaan doen 729 00:43:48,420 --> 00:43:51,620 is een nieuwe functie riep reactie te creëren. 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> Publieke functie createComment. 732 00:43:57,040 --> 00:44:00,130 Dit gaat om een ​​enkele hebben parameter, de ID van de berichten 733 00:44:00,130 --> 00:44:02,280 dat we commentaar op. 734 00:44:02,280 --> 00:44:04,790 En net als voorheen, we zijn ga eerst de post te krijgen. 735 00:44:04,790 --> 00:44:10,790 Dus plaatsen, findOrfail id. 736 00:44:10,790 --> 00:44:15,020 Daarna gaan we om commentaar te kunnen creëren. 737 00:44:15,020 --> 00:44:18,880 Dus commentaar = nieuw commentaar plaatsen. 738 00:44:18,880 --> 00:44:26,820 Commentaar naam = Input :: krijgen naam. 739 00:44:26,820 --> 00:44:39,420 Reactie content = dezelfde nieuwe lijn in de pauzes van Input :: krijgen inhoud. 740 00:44:39,420 --> 00:44:43,460 >> En tot slot, we gaan te hebben om associëren deze reactie bij de post. 741 00:44:43,460 --> 00:44:47,230 Dus we gaan gebruiken deze functie, opmerkingen, 742 00:44:47,230 --> 00:44:50,260 die ons in staat stelt om op te slaan deze relatie. 743 00:44:50,260 --> 00:44:54,780 Dus nu deze reactie zal hebben automatisch de post-ID. 744 00:44:54,780 --> 00:44:57,640 We kunnen het ook instellen handmatig, maar dit is 745 00:44:57,640 --> 00:45:02,490 meer eenvoudig om zo ver te lezen als de functie gaat. 746 00:45:02,490 --> 00:45:05,860 En nadat we presteren dit, wat we willen doen 747 00:45:05,860 --> 00:45:10,840 is de gebruiker terug naar de route aangegeven door viewPost 748 00:45:10,840 --> 00:45:16,010 met de matrix met de parameter van de post-ID. 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> En nu zo dat dit ook daadwerkelijk functies, moeten we deze route te bepalen. 751 00:45:24,660 --> 00:45:27,126 Route :: Post. 752 00:45:27,126 --> 00:45:32,800 En nu gaan we dit noemen Post slash ID slash reactie. 753 00:45:32,800 --> 00:45:36,725 Array maakt gebruik van de nieuwe functie dat we zojuist hebt gemaakt. 754 00:45:36,725 --> 00:45:37,350 BlogController. 755 00:45:37,350 --> 00:45:40,820 756 00:45:40,820 --> 00:45:44,770 CreateComment als createComment. 757 00:45:44,770 --> 00:45:47,430 758 00:45:47,430 --> 00:45:50,120 Grote. 759 00:45:50,120 --> 00:45:56,150 >> Dus nu hopelijk als we deze pagina vernieuwen en voeg in een commentaar, zeg, David Malan. 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 "Hopelijk werkt dit." 762 00:46:03,920 --> 00:46:05,216 Submit. 763 00:46:05,216 --> 00:46:09,050 We hebben in feite een commentaar op deze blog post. 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 Cool. 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 Dus nu hebben we een vrij functionele blog post. 768 00:46:21,430 --> 00:46:23,180 We gaan gewoon voeg een paar tweaks, zodat 769 00:46:23,180 --> 00:46:29,090 dat we wat meer nuttige informatie over deze berichten. 770 00:46:29,090 --> 00:46:32,780 >> Dus als we terug gaan naar de voorpagina, we hebben geen zin 771 00:46:32,780 --> 00:46:38,790 hoeveel opmerkingen zijn op elk van deze posten. 772 00:46:38,790 --> 00:46:41,340 Dus wat we eigenlijk gaan te doen is, binnen ons model, 773 00:46:41,340 --> 00:46:51,250 definiëren een helper functie die het mogelijk maakt ons om het aantal reacties te geven 774 00:46:51,250 --> 00:46:53,020 die gepaard gaan met een bepaalde functie. 775 00:46:53,020 --> 00:46:56,050 Dus we gaan creëren een helper functie. 776 00:46:56,050 --> 00:46:58,020 >> Publieke functie. 777 00:46:58,020 --> 00:46:58,770 GetNumCommentsStr. 778 00:46:58,770 --> 00:47:02,030 779 00:47:02,030 --> 00:47:07,180 Dus een string die het nummer aangeeft van de opmerkingen die meegaan met het. 780 00:47:07,180 --> 00:47:12,850 En wat we gaan doen is zeggen dat num = deze opmerkingen tellen. 781 00:47:12,850 --> 00:47:15,150 Dus we gaan rekenen het aantal reacties. 782 00:47:15,150 --> 00:47:22,900 En als dit aantal is gelijk aan 1, we zijn gewoon naar 1 reactie terug. 783 00:47:22,900 --> 00:47:28,890 En dan anders, we willen terugkeren de aaneenschakeling van num en opmerkingen, 784 00:47:28,890 --> 00:47:31,890 dus we krijgen de pluralisering correct. 785 00:47:31,890 --> 00:47:33,380 Maken dit een enkel citaat net. 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 Één reactie. 788 00:47:37,640 --> 00:47:41,140 >> En nu kunnen we deze functie te gebruiken direct binnenkant van onze mening. 789 00:47:41,140 --> 00:47:44,510 Dus als we terug gaan naar de gedeeltelijke berichten die we gemaakt hebben, 790 00:47:44,510 --> 00:47:49,370 nu willen we eigenlijk geven het aantal reacties. 791 00:47:49,370 --> 00:47:52,660 Dus wat we kunnen doen is post, gebruik deze functie 792 00:47:52,660 --> 00:47:57,230 dat we alleen maar gemaakt om geven het aantal reacties. 793 00:47:57,230 --> 00:48:00,440 Dus als we vernieuwen, is het nu doet in feite scherm 794 00:48:00,440 --> 00:48:02,240 Het aantal reacties die meegaan met het. 795 00:48:02,240 --> 00:48:05,320 >> Als we wilden zin als je te zijn eigenlijk kijken naar de verdeelsleutel, 796 00:48:05,320 --> 00:48:07,800 kunnen we eigenlijk koppelen dit aan de reacties. 797 00:48:07,800 --> 00:48:17,040 Misschien herinner je je, we gedefinieerd binnen de zien dat dit deel ID opmerkingen. 798 00:48:17,040 --> 00:48:22,460 Dus als we eigenlijk wilden koppelen direct naar de sectie opmerkingen, wat 799 00:48:22,460 --> 00:48:36,000 zouden we hier doen is een href URL van de route viewPost. 800 00:48:36,000 --> 00:48:40,550 Passeren in de array-ID van de post-ID. 801 00:48:40,550 --> 00:48:46,140 En dan willen we naar in het bijzonder de sectie opmerkingen. 802 00:48:46,140 --> 00:48:49,900 >> Hier laten we sluiten de A tag. 803 00:48:49,900 --> 00:48:52,950 Dus nu als we deze te vernieuwen pagina, klikken we op dit punt. 804 00:48:52,950 --> 00:48:54,700 We zullen direct te gaan het opmerkingenveld. 805 00:48:54,700 --> 00:48:57,580 Als we hadden een langere post, kunt u eigenlijk zien deze bounce naar beneden. 806 00:48:57,580 --> 00:49:02,668 Maar je zult merken dat het niet bovenaan de pagina. 807 00:49:02,668 --> 00:49:04,090 Cool. 808 00:49:04,090 --> 00:49:04,600 Grote. 809 00:49:04,600 --> 00:49:08,582 Dus dat is een vrij eenvoudig voorbeeld van iets simpels 810 00:49:08,582 --> 00:49:09,790 dat je kunt doen met Laravel. 811 00:49:09,790 --> 00:49:13,230 >> Maar je kunt hier zien dat we hebben een heleboel dingen gedaan 812 00:49:13,230 --> 00:49:16,200 met tamelijk kleine hoeveelheid code. 813 00:49:16,200 --> 00:49:19,420 Laravel stelt ons in staat om het te doen SQL-query's achter de schermen. 814 00:49:19,420 --> 00:49:21,960 Het doet de sanitaire voorzieningen voor ons achter de schermen. 815 00:49:21,960 --> 00:49:25,940 Stelt ons in staat om deze relaties te doen zeer eenvoudig, zonder ons te hoeven 816 00:49:25,940 --> 00:49:33,350 aan een SQL doen treden verklaringen combineren reacties met wat de berichten. 817 00:49:33,350 --> 00:49:36,480 Stelt ons in staat om dit te doen erfenis van templates 818 00:49:36,480 --> 00:49:43,780 zodat we deze nesten kunnen definiëren bestanden, zodat we onszelf niet herhalen, 819 00:49:43,780 --> 00:49:47,020 net als toen we dat weergave van de blog posts 820 00:49:47,020 --> 00:49:50,770 dat we niet hoeven te Kopieer en plak de code. 821 00:49:50,770 --> 00:49:55,450 >> En vanaf hier kun je bouwen steeds ingewikkelder toepassingen. 822 00:49:55,450 --> 00:49:58,370 Je kunt je voorstellen als we wilde implementeren log-in, 823 00:49:58,370 --> 00:50:05,532 zouden we kunnen zeggen, te brengen in een derde raamwerk dat ons in staat stelt om dat te doen. 824 00:50:05,532 --> 00:50:07,490 Er is een bos van hen dat zijn echt, echt 825 00:50:07,490 --> 00:50:09,970 geweldig dat kan doen, zoals, wachtwoord herstel. 826 00:50:09,970 --> 00:50:14,450 En het zal u een stuur reset wachtwoord e-mail. 827 00:50:14,450 --> 00:50:18,260 We kunnen toestemming implementeren zodat ik een post kan creëren, 828 00:50:18,260 --> 00:50:20,350 maar iemand anders niet kan bewerken. 829 00:50:20,350 --> 00:50:24,610 We kunnen implementeren functionaliteit om berichten te verwijderen. 830 00:50:24,610 --> 00:50:28,160 >> Maar je kunt hier zien dat we vrij veel al de rudimentaire onderdelen 831 00:50:28,160 --> 00:50:31,640 om echt te bouwen wat, echt, dynamische en spannende web-apps. 832 00:50:31,640 --> 00:50:34,035 Dus met dat, ik denk dat we goed. 833 00:50:34,035 --> 00:50:35,720 Hebben jullie nog vragen? 834 00:50:35,720 --> 00:50:36,220 Ja? 835 00:50:36,220 --> 00:50:38,090 >> SPEAKER 3: Hoe doe je krijgen statische inhoud? 836 00:50:38,090 --> 00:50:39,256 >> ERIC Ouyang: Statische content. 837 00:50:39,256 --> 00:50:45,520 Dus je zag voordat dat wanneer we hadden dit recht hier, deze inhoud lay-out, 838 00:50:45,520 --> 00:50:49,625 view merk, dit hadden we zonder deze array achteraf. 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index, dit hadden we als slechts een statisch bestand. 841 00:50:59,152 --> 00:51:00,860 Dus als we niet voorbij iets mee te, 842 00:51:00,860 --> 00:51:03,340 het zal alleen maken de HTML direct. 843 00:51:03,340 --> 00:51:09,240 Maar als we passeren in deze associatieve reeks van berichten, dat is dynamisch 844 00:51:09,240 --> 00:51:12,950 getrokken uit de database, we kan de pagina dynamisch te maken. 845 00:51:12,950 --> 00:51:13,450 Cool. 846 00:51:13,450 --> 00:51:14,830 Een andere vragen? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 SPEAKER 3: Hoe zou je het vergelijkt Laravel om misschien nog enkele andere opties? 849 00:51:19,720 --> 00:51:20,525 ERIC Ouyang: Tuurlijk. 850 00:51:20,525 --> 00:51:21,025 Yeah. 851 00:51:21,025 --> 00:51:23,430 Dus Laravel is-- dat is een grote question-- 852 00:51:23,430 --> 00:51:26,190 een van de vele opties voor web frameworks. 853 00:51:26,190 --> 00:51:31,160 Dus Ruby on Rails is een dat is populair. 854 00:51:31,160 --> 00:51:34,590 Ik denk dat Twitter gebruikt te worden geïmplementeerd met Ruby on Rails. 855 00:51:34,590 --> 00:51:37,600 Ik denk dat ze sinds ingeschakeld. 856 00:51:37,600 --> 00:51:40,780 Er is een andere genaamd FuelPHP. 857 00:51:40,780 --> 00:51:46,120 >> Dus Ruby on Rails maakt gebruik van de Ruby taal en implementeert een groot deel van de MVC stuff 858 00:51:46,120 --> 00:51:48,200 die we hier zien. 859 00:51:48,200 --> 00:51:52,320 FuelPHP is een andere PHP framework. 860 00:51:52,320 --> 00:51:54,490 Django is een van mijn favorieten. 861 00:51:54,490 --> 00:51:57,010 Het is een web framework voor Python. 862 00:51:57,010 --> 00:52:01,270 Zo kunt u uw web-app in Python te schrijven. 863 00:52:01,270 --> 00:52:03,760 Dus er is een ton van deze opties. 864 00:52:03,760 --> 00:52:06,170 >> Laravel, denk ik, door en groot is mijn favoriete rechts 865 00:52:06,170 --> 00:52:08,232 nu voor PHP, alleen maar omdat van de componenten 866 00:52:08,232 --> 00:52:09,440 dat we het eerder over had. 867 00:52:09,440 --> 00:52:11,910 Het is Composer ingeschakeld. 868 00:52:11,910 --> 00:52:15,750 Het omvat een heel, heel expressieve ORM-systeem. 869 00:52:15,750 --> 00:52:18,800 Heeft ook echt een geweldige template taal dat sommige van de anderen 870 00:52:18,800 --> 00:52:20,630 gewoon niet te bieden. 871 00:52:20,630 --> 00:52:21,400 En migraties. 872 00:52:21,400 --> 00:52:23,432 Migraties zijn geweldig ook. 873 00:52:23,432 --> 00:52:24,860 Cool? 874 00:52:24,860 --> 00:52:25,390 Geweldig. 875 00:52:25,390 --> 00:52:27,560 Nou, heel erg bedankt hiervoor het kijken naar dit seminar, 876 00:52:27,560 --> 00:52:30,650 en veel geluk op je laatste projecten. 877 00:52:30,650 --> 00:52:31,616