1 00:00:00,000 --> 00:00:02,538 >> [REPRODUCCIÓ DE MÚSICA] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ERIC Ouyang: Hey, tothom. 4 00:00:12,390 --> 00:00:13,580 Benvingut. 5 00:00:13,580 --> 00:00:16,860 Es tracta de l'edifici dinàmic Aplicacions Web amb Laravel. 6 00:00:16,860 --> 00:00:18,290 El meu nom és Eric Ouyang. 7 00:00:18,290 --> 00:00:23,860 Sóc un estudiant de segon any estudiant ciències socials amb una secundària en ciències de la computació, 8 00:00:23,860 --> 00:00:27,290 i visc a Adams Casa aquí a Harvard. 9 00:00:27,290 --> 00:00:33,340 >> Així Laravel, en la seva forma més bàsica, és un marc d'aplicació web MVC. 10 00:00:33,340 --> 00:00:38,265 Així que t'agradi el que vostès tenen estat fent amb CS50 Finances, 11 00:00:38,265 --> 00:00:42,480 Laravel és un marc que permet que li permet construir aplicacions web dinàmiques. 12 00:00:42,480 --> 00:00:47,710 Així que vostè pot pensar en ell en alguns sentits com una extensió del tipus de coses 13 00:00:47,710 --> 00:00:50,470 que has estat fent en CS50 Finances, sinó un sistema que és 14 00:00:50,470 --> 00:00:55,890 molt més robust, molt més elegant, en alguns sentits, 15 00:00:55,890 --> 00:00:57,870 i proporciona una gran quantitat de funcionalitat per a vostè 16 00:00:57,870 --> 00:01:03,060 per construir bastant complex aplicacions web. 17 00:01:03,060 --> 00:01:05,010 Així que anem a anar a través d'alguns de les principals característiques, 18 00:01:05,010 --> 00:01:09,550 i després anem a bussejar en un exemple de construcció d'un bloc 19 00:01:09,550 --> 00:01:12,500 aplicació amb Laravel. 20 00:01:12,500 --> 00:01:16,700 >> Així que una de les primeres coses que el diferencia de tipus MVC de treball 21 00:01:16,700 --> 00:01:22,100 que vostè ha estat fent amb CS50 és que inclou un motor de ORM. 22 00:01:22,100 --> 00:01:27,410 Així ORM significa objecte mapatge relacional. 23 00:01:27,410 --> 00:01:31,080 Així que això li permet construir una capa d'abstracció 24 00:01:31,080 --> 00:01:35,230 entre la base de dades i els seus controladors. 25 00:01:35,230 --> 00:01:39,150 Així que a diferència de CS50 Finances on directament realitzar consultes, 26 00:01:39,150 --> 00:01:44,790 la capa ORM li permet abstracta que de distància i crear 27 00:01:44,790 --> 00:01:48,085 models que són més poderosos que pot directament amb consultes SQL. 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> Una altra cosa que és realment és útil plantilles heretables. 30 00:01:53,510 --> 00:01:58,990 Així que vostè notarà en CS50 Finances, acabes reescriure un munt de coses, 31 00:01:58,990 --> 00:02:03,150 on col·loca vostè podria potencialment reutilitzar les coses, no ets capaç de fer-ho. 32 00:02:03,150 --> 00:02:08,539 Així que aquí a Laravel, pot utilitzar el que hi ha conegut com el motor de plantilles fulla 33 00:02:08,539 --> 00:02:10,530 per crear un disseny mestre. 34 00:02:10,530 --> 00:02:15,840 I a partir d'aquí, es pot heretar de manera que els sub-plantilles pot en realitat 35 00:02:15,840 --> 00:02:21,210 incloure elements dins de que major plantilla base. 36 00:02:21,210 --> 00:02:21,810 >> Migració. 37 00:02:21,810 --> 00:02:29,010 Així que això és una sèrie de característiques bastant estàndard en la majoria dels entorns d'aplicacions web modernes. 38 00:02:29,010 --> 00:02:32,710 Així que això li permet representar canvis en l'esquema de base de dades en codi. 39 00:02:32,710 --> 00:02:39,200 Així que sense anar a dir, phpMyAdmin, en realitat es pot crear aquestes migracions 40 00:02:39,200 --> 00:02:44,660 on Representes a la base de dades esquema de canvis en el codi directament. 41 00:02:44,660 --> 00:02:48,070 I això li permet A-- especialment si té diverses persones que treballen 42 00:02:48,070 --> 00:02:52,650 en el mateix application-- web realitzar un seguiment d'aquests canvis, 43 00:02:52,650 --> 00:02:55,380 dir en GitHub, o algun altre dipòsit. 44 00:02:55,380 --> 00:03:00,880 >> Així que això és realment útil i mitiga la necessitat 45 00:03:00,880 --> 00:03:04,580 a, per exemple, passar al voltant d'un munt de SQL abocadors. 46 00:03:04,580 --> 00:03:07,140 I, finalment, Composer és una cosa molt, molt útil 47 00:03:07,140 --> 00:03:09,840 que li permet utilitzar un altre codi de la gent per fer coses impressionants. 48 00:03:09,840 --> 00:03:14,020 Així Laravel del estructurada com diversos paquets compositor. 49 00:03:14,020 --> 00:03:17,870 Així que dius si volia portar en un paquet d'autenticació 50 00:03:17,870 --> 00:03:23,440 o si vostè vol portar una mica de tipus de script generador o un administrador 51 00:03:23,440 --> 00:03:26,910 interfície, pot connectar i jugar aquests components amb Composer. 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> Així que anem a començar. 54 00:03:31,570 --> 00:03:35,185 Qualsevol pregunta de vostè nois abans de començar? 55 00:03:35,185 --> 00:03:36,500 No hi ha preguntes? 56 00:03:36,500 --> 00:03:37,490 Fresc. 57 00:03:37,490 --> 00:03:39,990 Així que el primer pas és instal·lar Compositor. 58 00:03:39,990 --> 00:03:43,590 Així Composer li permet gestionar aquestes dependències, 59 00:03:43,590 --> 00:03:47,770 si és el marc Laravel o alguna altra extensió tercers. 60 00:03:47,770 --> 00:03:50,400 El primer ordre permet descarregar Compositor, 61 00:03:50,400 --> 00:03:55,890 i el segon comandament que permet a moure'l a la carpeta bin locals 62 00:03:55,890 --> 00:04:01,340 pel que pot executar Compositor directament a través del terminal. 63 00:04:01,340 --> 00:04:05,405 >> Després d'això, seguir endavant i crear un nou projecte Laravel. 64 00:04:05,405 --> 00:04:07,280 Estem realment va a utilitzar un codi d'exemple 65 00:04:07,280 --> 00:04:10,760 que he ajuntat per crear aquest bloc. 66 00:04:10,760 --> 00:04:14,420 Però si vas a començar des zero, seria utilitzar aquesta comanda 67 00:04:14,420 --> 00:04:18,160 fins aquí, compositor crear projectes, Laravel slash Laravel, i després 68 00:04:18,160 --> 00:04:19,940 el nom del seu projecte. 69 00:04:19,940 --> 00:04:22,275 I això va a incloure tot el codi de distribució 70 00:04:22,275 --> 00:04:23,733 per iniciar un nou projecte Laravel. 71 00:04:23,733 --> 00:04:28,870 Així que per als projectes finals CS50, podràs Probablement vulgui utilitzar aquest ordre. 72 00:04:28,870 --> 00:04:31,210 >> Però anem a començar amb això. 73 00:04:31,210 --> 00:04:34,630 Així que una vegada que has fet que, vas a aconseguir 74 00:04:34,630 --> 00:04:40,190 un nombre bastant extensa d'arxius en blog50. 75 00:04:40,190 --> 00:04:43,840 Així que anem a anar a través de alguns d'aquests components. 76 00:04:43,840 --> 00:04:49,060 Es donarà compte en aquesta ruta directori, hi ha una carpeta d'aplicació. 77 00:04:49,060 --> 00:04:52,960 Dins de la carpeta d'aplicacions, hi ha un parell de carpetes útils. 78 00:04:52,960 --> 00:04:56,330 Cal destacar que començar amb és aquesta carpeta config. 79 00:04:56,330 --> 00:04:59,210 Així que aquest estableix com la seva aplicació web és 80 00:04:59,210 --> 00:05:04,350 anar a, per exemple, autentificar les persones o coses en efectiu o es connecten a la base de dades. 81 00:05:04,350 --> 00:05:06,400 >> I el que és realment útil és que Laravel 82 00:05:06,400 --> 00:05:09,130 li permet configurar diferents entorns de desenvolupament. 83 00:05:09,130 --> 00:05:12,090 Així que el que hem fet aquí és que si anem sota de la carpeta local, 84 00:05:12,090 --> 00:05:14,720 hi ha un arxiu database.php. 85 00:05:14,720 --> 00:05:18,320 I t'adonaràs que estem aquí configurar una connexió MySQL que 86 00:05:18,320 --> 00:05:22,230 permet que les persones es connectin al servidor MySQL que és 87 00:05:22,230 --> 00:05:24,310 directament en l'aparell CS50. 88 00:05:24,310 --> 00:05:26,980 I estem connectant a una base de dades que configura vaig trucar Blog50. 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> Així que seguirem endavant i realment executar la versió de treball d'aquest, 91 00:05:37,085 --> 00:05:39,710 només per tenir una idea del que el aplicació que estem construint 92 00:05:39,710 --> 00:05:41,390 sembla. 93 00:05:41,390 --> 00:05:46,150 Així que tinc una còpia de aquest Blog50 completat. 94 00:05:46,150 --> 00:05:51,910 Així que en realitat Laravel ha construït en un servidor 95 00:05:51,910 --> 00:05:53,910 que es pot executar directament des de la línia d'ordres. 96 00:05:53,910 --> 00:05:56,900 Així que aquest és similar a la PSet abans quan realment 97 00:05:56,900 --> 00:06:00,580 construir el seu propi servidor en C. Així que han construït un a la 98 00:06:00,580 --> 00:06:04,010 que pot executar les seves aplicacions Laravel directament des de la línia d'ordres. 99 00:06:04,010 --> 00:06:11,650 >> Així que si ho fem php artesanal servir, aquesta posarà en marxa un servidor de desenvolupament 100 00:06:11,650 --> 00:06:13,880 al port 8000. 101 00:06:13,880 --> 00:06:18,250 Així que si anem al host local 8000, t'adonaràs que, hey. 102 00:06:18,250 --> 00:06:20,800 Tenim el nostre bloc en marxa i funcionant. 103 00:06:20,800 --> 00:06:25,090 Així que aquí està generant Laravel la primera pàgina del nostre bloc. 104 00:06:25,090 --> 00:06:26,350 Aplicació molt simple. 105 00:06:26,350 --> 00:06:28,610 Però hi ha un parell característiques realment enginyoses 106 00:06:28,610 --> 00:06:31,346 que proporciona sota la campana. 107 00:06:31,346 --> 00:06:33,680 >> Així que de l'aplicació de bloc senzill. 108 00:06:33,680 --> 00:06:36,430 Si volguéssim crear un lloc, podem fer clic en aquest botó. 109 00:06:36,430 --> 00:06:40,470 Podem dir: "Hey, tothom. 110 00:06:40,470 --> 00:06:44,530 Aquest és un molt divertit seminari, "per exemple. 111 00:06:44,530 --> 00:06:46,560 I escriure alguna cosa aquí. 112 00:06:46,560 --> 00:06:48,180 Text aquí. 113 00:06:48,180 --> 00:06:51,327 Si ens clic a Enviar, vostè compte que el nostre nou bloc 114 00:06:51,327 --> 00:06:53,410 ja s'ha afegit a la portada del bloc. 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 Si tornem aquí, et donaràs compte que ha hagut alguns comentaris ja 117 00:06:59,970 --> 00:07:01,160 al bloc. 118 00:07:01,160 --> 00:07:03,630 Així que si ens desplacem cap avall, podràs observi que Jonathan Tan diu 119 00:07:03,630 --> 00:07:08,020 que estava molt intrigat per aquest post. 120 00:07:08,020 --> 00:07:11,570 >> Així que anem a entrar en com objecte mapatge relacional permet 121 00:07:11,570 --> 00:07:16,668 que facis aquestes relacions en una manera bastant transparent també. 122 00:07:16,668 --> 00:07:17,660 Fresc. 123 00:07:17,660 --> 00:07:20,290 Una pregunta sobre la funcionalitat del que construirem? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 Fresc. 126 00:07:23,840 --> 00:07:28,170 Així que comencem amb realitat la creació de les taules de la base. 127 00:07:28,170 --> 00:07:33,190 >> Així recordar que en CS50 Finances, que armar una taula per als usuaris 128 00:07:33,190 --> 00:07:37,100 així com per a la accions en la seva cartera. 129 00:07:37,100 --> 00:07:41,040 Així com hem esmentat anteriorment, el que fem servir en Laravel 130 00:07:41,040 --> 00:07:43,090 és una cosa que es coneix com les migracions. 131 00:07:43,090 --> 00:07:48,570 Així que si ens remuntem a la codi de distribució aquí, 132 00:07:48,570 --> 00:07:51,790 la primera ordre que és útil que Laravel li proporciona 133 00:07:51,790 --> 00:07:54,240 És aquesta comanda migrate. 134 00:07:54,240 --> 00:07:59,220 Així que podem fer migrar artesanal php: fer. 135 00:07:59,220 --> 00:08:01,760 Així que això ens permet crear una migració. 136 00:08:01,760 --> 00:08:03,710 >> I després anem a voler per crear una migració 137 00:08:03,710 --> 00:08:07,050 anomenat create_posts_table, que va 138 00:08:07,050 --> 00:08:11,521 estar on anem a ser emmagatzemar els nostres posts. 139 00:08:11,521 --> 00:08:14,690 I es donarà compte aquí que s'executi a través d'algun codi que realment 140 00:08:14,690 --> 00:08:17,580 genera un arxiu amb una marca de temps en ell. 141 00:08:17,580 --> 00:08:22,260 Així que si anem i mirem a base de dades, notem sota Migracions 142 00:08:22,260 --> 00:08:24,830 que ha creat un arxiu en blanc per a nosaltres, que 143 00:08:24,830 --> 00:08:30,100 té codi repetitiu amb el nom que hem especificat, crear llocs de la taula. 144 00:08:30,100 --> 00:08:31,670 >> I té dues funcions al mateix. 145 00:08:31,670 --> 00:08:40,539 Up és el que volem executar quan el la migració s'aplica a la base de dades. 146 00:08:40,539 --> 00:08:46,380 I a sota és el que farem quan volem revertir una migració. 147 00:08:46,380 --> 00:08:49,890 Així que aquí anem a començar a terme amb l'escriptura d'aquesta migració. 148 00:08:49,890 --> 00:08:55,480 Així que hi ha una classe útil en Laravel anomenat esquema. 149 00:08:55,480 --> 00:08:57,910 >> Així que anem a córrer esquema :: crear. 150 00:08:57,910 --> 00:09:01,080 I crearem una taula anomenada llocs. 151 00:09:01,080 --> 00:09:05,980 I aquí apliquem aquesta utilitzant una funció. 152 00:09:05,980 --> 00:09:11,010 I dins d'aquí, anem a realitat especificar el contingut de la nostra taula. 153 00:09:11,010 --> 00:09:14,860 Crearem un document d'identitat, que és d'increment automàtic. 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> A més, anem per crear un camp que 156 00:09:24,350 --> 00:09:27,060 representa el títol del nostre bloc. 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 També crearem un camp per emmagatzemar el text de la nostra entrada al bloc. 159 00:09:36,950 --> 00:09:40,600 I, finalment, anem per guardar algunes marques de temps 160 00:09:40,600 --> 00:09:44,690 per a la qual es va crear el nostre post i quan s'ha actualitzat. 161 00:09:44,690 --> 00:09:46,240 I per sota, és bastant simple. 162 00:09:46,240 --> 00:09:53,974 Tot el que volem fer és caiguda la taula que hem creat. 163 00:09:53,974 --> 00:09:54,930 >> Gran. 164 00:09:54,930 --> 00:09:55,850 Alguna pregunta? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 Així que ara si anem per davant i- realitat, amfitrió local, 167 00:10:07,110 --> 00:10:09,640 m'ho dius a mi esborrar el que teníem abans. 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 Anar a les bases de dades. 170 00:10:15,190 --> 00:10:17,640 Vaig a esborrar el que teníem abans. 171 00:10:17,640 --> 00:10:22,870 Deixa això i crear una nova base de dades Blog50. 172 00:10:22,870 --> 00:10:24,930 Així que ara el que el màgic part és aquí que 173 00:10:24,930 --> 00:10:28,760 pot aplicar directament aquestes migracions a la base de dades mitjançant la línia d'ordres 174 00:10:28,760 --> 00:10:29,290 eina. 175 00:10:29,290 --> 00:10:35,100 Així que si ho fem migren php artesà, t'adonaràs que, hey. 176 00:10:35,100 --> 00:10:38,320 Es crea la taula de migració, que anem a fer una ullada a una mica, 177 00:10:38,320 --> 00:10:40,540 i s'aplica aquesta primera migració. 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> Així que mirem Blog50, et donaràs compte que ha creat dues taules per a nosaltres. 180 00:10:48,920 --> 00:10:50,300 En primer lloc és aquesta taula migracions. 181 00:10:50,300 --> 00:10:54,130 Així que si naveguem això, t'adonaràs que aquesta taula és bastant senzill. 182 00:10:54,130 --> 00:10:55,490 Simplement diu que, hey. 183 00:10:55,490 --> 00:10:58,960 Hem aplicat aquesta migració. 184 00:10:58,960 --> 00:11:01,470 Anem enrere i mirar els llocs. 185 00:11:01,470 --> 00:11:05,720 Es donarà compte de que l'estructura és exactament el que havíem demanat ella. 186 00:11:05,720 --> 00:11:07,350 Comptem amb un ID d'increment automàtic. 187 00:11:07,350 --> 00:11:10,450 Tenim una cadena per emmagatzemar el títol, i un camp de text 188 00:11:10,450 --> 00:11:11,450 per emmagatzemar el contingut. 189 00:11:11,450 --> 00:11:14,040 190 00:11:14,040 --> 00:11:14,706 Gran. 191 00:11:14,706 --> 00:11:15,560 Fresc. 192 00:11:15,560 --> 00:11:21,626 Una pregunta sobre les migracions treball, com podem aplicar? 193 00:11:21,626 --> 00:11:22,126 No? 194 00:11:22,126 --> 00:11:23,600 Fresc. 195 00:11:23,600 --> 00:11:26,630 Així que ara seguirem endavant i en realitat crear el model. 196 00:11:26,630 --> 00:11:33,100 Així que volem crear un model de missatges que emmagatzema una abstracció de la base de dades. 197 00:11:33,100 --> 00:11:41,040 Així que en lloc de fer consultes MySQL directament, crearem. 198 00:11:41,040 --> 00:11:45,840 Així que hem de crear un carpeta en aquí anomenats models. 199 00:11:45,840 --> 00:11:48,905 I aquí dins, anem a crear un arxiu anomenat post.php. 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> Dins d'aquest arxiu PHP, crearem 202 00:11:54,550 --> 00:12:00,590 un pal de la classe que s'estén eloqüent. 203 00:12:00,590 --> 00:12:08,950 Eloqüent és el nom de la ORM motor que Laravel ofereix. 204 00:12:08,950 --> 00:12:12,799 I aquí, podríem esperar que que realment necessita per escriure una mica de codi. 205 00:12:12,799 --> 00:12:14,840 Anem a escriure alguns funcions auxiliars posteriors. 206 00:12:14,840 --> 00:12:19,420 Però fora de la caixa, això ja ho farà Reconèixer el que està a la base de dades 207 00:12:19,420 --> 00:12:24,770 i podem accedir, per exemple, el text de la nostra entrada al bloc o al títol, 208 00:12:24,770 --> 00:12:29,230 i crear coses directament amb gairebé cap codi en absolut. 209 00:12:29,230 --> 00:12:31,110 >> Així que aquest és un dels components màgics. 210 00:12:31,110 --> 00:12:34,980 I el vent una vegada que aquesta classe està més en tota regla, 211 00:12:34,980 --> 00:12:40,480 anem a incloure informació sobre el que que està relacionat amb, de manera que els comentaris. 212 00:12:40,480 --> 00:12:42,310 També crear una funció perquè puguem realment 213 00:12:42,310 --> 00:12:46,340 obtenir directament la URL d'una pàgina bloc. 214 00:12:46,340 --> 00:12:46,840 Fresc. 215 00:12:46,840 --> 00:12:47,881 Una pregunta sobre això? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 No. 218 00:12:51,832 --> 00:12:54,100 Fresc. 219 00:12:54,100 --> 00:12:57,860 >> Així que ara, una vegada que tenim el nostre model, que vulgueu crear un controlador que és 220 00:12:57,860 --> 00:13:02,340 capaç d'interactuar amb aquests models, i, posteriorment, la base de dades. 221 00:13:02,340 --> 00:13:05,540 Així que si fem una ullada a BlogController, podràs 222 00:13:05,540 --> 00:13:08,490 observi que no hi ha molt aquí en aquest moment. 223 00:13:08,490 --> 00:13:13,220 Tot el que hi ha és una funció d'índex que genera la pàgina principal, 224 00:13:13,220 --> 00:13:18,220 però sense res allà per mostrar. 225 00:13:18,220 --> 00:13:20,560 >> Així que la primera funció que crearem 226 00:13:20,560 --> 00:13:25,790 és aquella que ens permet per crear una entrada al bloc. 227 00:13:25,790 --> 00:13:30,540 Així que anem a declarar una nova funció anomenada newPost. 228 00:13:30,540 --> 00:13:36,430 I aquí dins, simplement, anem per configurar la mida d'aquesta pàgina 229 00:13:36,430 --> 00:13:41,850 ser un render versió, si vostè recorda de CS50, 230 00:13:41,850 --> 00:13:48,020 d'aquesta plantilla anomenada blog.new, que crearem en una mica. 231 00:13:48,020 --> 00:13:53,170 >> Es donarà compte de que aquí a la línia sis que especifiquem aquesta variable, el disseny. 232 00:13:53,170 --> 00:13:55,820 I si fem un cop d'ull a la carpeta Vistes, 233 00:13:55,820 --> 00:14:01,640 hi ha una carpeta Layouts, que inclou un arxiu HTML molt bàsic. 234 00:14:01,640 --> 00:14:04,680 I, per nota, et donaràs compte que tenim aquest contenidor 235 00:14:04,680 --> 00:14:06,800 aquí que produeix contingut. 236 00:14:06,800 --> 00:14:09,460 Així que dins de la nostra plantilla el que farem 237 00:14:09,460 --> 00:14:16,180 és crear el que serà substituït directament dins d'aquest disseny. 238 00:14:16,180 --> 00:14:20,060 >> Llavors vam dir que volem fer una plantilla anomenada blog.new. 239 00:14:20,060 --> 00:14:23,790 Però dins de Blog, hi ha encara no aquesta nova plantilla. 240 00:14:23,790 --> 00:14:26,910 Així que anem a crear un arxiu anomenat new.blade.php. 241 00:14:26,910 --> 00:14:29,860 Això li diu que Laravel aquest arxiu PHP ha de 242 00:14:29,860 --> 00:14:31,720 ser prestats amb la motor de la plantilla del full. 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 Així que això és bastant arxiu senzill. 245 00:14:42,630 --> 00:14:46,690 Serà la forma per la qual en realitat ens sumem a un bloc. 246 00:14:46,690 --> 00:14:49,220 >> Així que la màgia aquí des del l'herència és que, hey. 247 00:14:49,220 --> 00:14:52,950 Volem precisar que la secció, la secció de contingut 248 00:14:52,950 --> 00:14:56,640 aquí, que queda delimitat porsection ystop. 249 00:14:56,640 --> 00:15:02,260 Així que el que està en entre aquí va a ser substituït en el disseny mestre. 250 00:15:02,260 --> 00:15:07,000 I aquí el que volem fer és molt simple crear un nou fitxer HTML. 251 00:15:07,000 --> 00:15:08,690 Anem a afegir un títol ràpid. 252 00:15:08,690 --> 00:15:09,600 Afegir una entrada de bloc. 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 I dins d'ella, estem crearà un formulari. 255 00:15:15,390 --> 00:15:19,197 >> Aquesta forma tindrà una acció. 256 00:15:19,197 --> 00:15:21,780 I això serà una cosa que substituïm en endavant, 257 00:15:21,780 --> 00:15:24,200 i veurem com enrutament encaixa en aquí. 258 00:15:24,200 --> 00:15:33,600 Però només definirem de moment que aquest va a una URL amb la ruta 259 00:15:33,600 --> 00:15:34,860 des createPost. 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 I llavors això va tenir mètode POST. 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 Dins d'aquí, anem tenir dos camps. 264 00:15:47,590 --> 00:15:49,170 Div class = "forma-grup". 265 00:15:49,170 --> 00:15:55,806 >> Estem utilitzant la biblioteca Bootstrap CSS gentilment proporcionada per Twitter. 266 00:15:55,806 --> 00:15:57,720 Així que anem a crear dos d'ells. 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 Així que aquesta primera entrada és serà el títol. 269 00:16:05,970 --> 00:16:08,437 Així que el nom d'entrada = "title". 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 Vaig a afegir un marcador de posició = "Title". 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> I llavors el segon és serà una àrea de text. 276 00:16:26,140 --> 00:16:27,827 Name = "contingut". 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 I marcador de posició = "Introduïu aquí". 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 Cal anar. 282 00:16:43,480 --> 00:16:46,760 Finalment, anem a afegir un botó d'accés ràpid enviar. 283 00:16:46,760 --> 00:16:50,370 Type = "submit" class = "btn btn-primària". 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 Així que aquests són tots característiques de Bootstrap el 286 00:16:55,340 --> 00:16:58,510 que aquest es pot col·locar en una manera que és 287 00:16:58,510 --> 00:17:03,730 presa per l'usuari, en lloc d'HTML nu. 288 00:17:03,730 --> 00:17:06,250 >> Així que hem definit el controlador aquí. 289 00:17:06,250 --> 00:17:08,930 Hem definit una visió molt simple. 290 00:17:08,930 --> 00:17:12,339 Però el que cal és el teixit connectiu. 291 00:17:12,339 --> 00:17:15,420 Així que en aquest punt, Laravel té ni idea de com 292 00:17:15,420 --> 00:17:18,312 anem a realitat accedir a aquest controlador. 293 00:17:18,312 --> 00:17:20,270 Així que aquest es defineix en una arxiu anomenat routes.php. 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 I ara mateix, tenim una ruta. 296 00:17:24,310 --> 00:17:29,060 Que és quan anem a la camí a casa d'aquest lloc web, 297 00:17:29,060 --> 00:17:33,140 que farà el controlador d'índex. 298 00:17:33,140 --> 00:17:38,880 Així que aquí el que hem de fer és posar en pràctica una nova ruta per a nosaltres per crear un pal. 299 00:17:38,880 --> 00:17:41,910 >> Així que fem servir aquest mètode aconseguir, que especifica 300 00:17:41,910 --> 00:17:48,650 que quan un usuari intenta aconseguir aquest page-- específicament 301 00:17:48,650 --> 00:17:52,850 el càrrec slash nova page-- el que farem 302 00:17:52,850 --> 00:18:02,060 s'utilitzi el controlador anomenat BlogController nou lloc. 303 00:18:02,060 --> 00:18:03,460 La que acabem de crear. 304 00:18:03,460 --> 00:18:08,090 I després anem posar un àlies com newPost. 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 Anem a crear un altre funció en una mica. 307 00:18:19,850 --> 00:18:23,520 Però el que hi ha aquí sota la clau "com" és el que 308 00:18:23,520 --> 00:18:28,195 podem substituir dins les nostres plantilles de fulla. 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 Així que per ara, anem a en realitat també dir ruta. 311 00:18:36,230 --> 00:18:38,380 Així també anem per crear un controlador 312 00:18:38,380 --> 00:18:41,020 de manera que podem crear aquests llocs. 313 00:18:41,020 --> 00:18:46,940 Així que si un usuari publica per al càrrec pàgina SLASH nou, el que farem 314 00:18:46,940 --> 00:18:51,350 és utilitza un controlador que crearem en breu 315 00:18:51,350 --> 00:18:56,160 anomenat BlogController a createPost. 316 00:18:56,160 --> 00:19:01,929 I anem a àlies això amb createPost. 317 00:19:01,929 --> 00:19:03,380 Fresc. 318 00:19:03,380 --> 00:19:05,811 >> Alguna pregunta? 319 00:19:05,811 --> 00:19:06,310 Fresc. 320 00:19:06,310 --> 00:19:09,790 Així que anem a executar el que tenim fins ara. 321 00:19:09,790 --> 00:19:16,930 Així que si ho fem php artesanal servir, anem a veure un munt d'errors. 322 00:19:16,930 --> 00:19:20,385 Així que sembla que tenim una error de sintaxi en les rutes de la línia 27. 323 00:19:20,385 --> 00:19:20,885 Ah. 324 00:19:20,885 --> 00:19:21,718 Falta un punt i coma. 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 Així que si ens anem a 8000, veuràs res aquí encara. 327 00:19:32,870 --> 00:19:34,740 Així que aquesta és la pàgina d'inici predeterminada. 328 00:19:34,740 --> 00:19:37,730 >> Però si anem a publicar retallar nou, sent. 329 00:19:37,730 --> 00:19:40,425 Serà la manera que acabem de crear. 330 00:19:40,425 --> 00:19:42,550 En aquest moment, no tenim implementat la funcionalitat 331 00:19:42,550 --> 00:19:44,060 de quan pressionem el botó Envia. 332 00:19:44,060 --> 00:19:47,110 Així que si fem clic al Presentar botó, es va a executar un error. 333 00:19:47,110 --> 00:19:49,840 Però anem a codi que en aquest moment, precisament, el que 334 00:19:49,840 --> 00:19:54,840 voler fer quan un usuari sotmet aquest formulari. 335 00:19:54,840 --> 00:19:55,770 >> Així que farem això. 336 00:19:55,770 --> 00:19:57,380 Tornar a l'arxiu de controladors. 337 00:19:57,380 --> 00:20:00,180 El que farem és implementar aquesta nova funció 338 00:20:00,180 --> 00:20:04,360 que ens permet crear un post. 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 Declarar nova funció. 341 00:20:08,990 --> 00:20:11,527 CreatePost funció pública. 342 00:20:11,527 --> 00:20:14,610 I aquesta funció serà un poc més sofisticat que el 343 00:20:14,610 --> 00:20:15,559 que teníem abans. 344 00:20:15,559 --> 00:20:18,350 Però veuràs aquí que no estem va a escriure en realitat qualsevol SQL. 345 00:20:18,350 --> 00:20:20,980 El ORM, el Eloqüent ORM, permetrà 346 00:20:20,980 --> 00:20:26,400 que fem això d'alguna formes una forma més elegant. 347 00:20:26,400 --> 00:20:29,140 >> Així que anem a crear un nou lloc. 348 00:20:29,140 --> 00:20:34,120 I aquí estem instanciar un nou objecte 349 00:20:34,120 --> 00:20:38,080 a partir del model que acabem de creat, el model posterior. 350 00:20:38,080 --> 00:20:44,450 I el que farem és establir la atribut títol d'aquest ús d'alguna cosa 351 00:20:44,450 --> 00:20:47,380 que obtenim des del servidor. 352 00:20:47,380 --> 00:20:52,060 Així que això és similar al que teníem abans a CS50 Finances 353 00:20:52,060 --> 00:20:57,750 on anàvem a fer, utilitzant el Súper Global Post buscant títol. 354 00:20:57,750 --> 00:21:01,600 >> Així Laravel ofereix serveis de sanejament i altres coses l'ús d'aquesta funció auxiliar. 355 00:21:01,600 --> 00:21:07,610 Així que preferim utilitzar aquest lloc d'aquesta manera crua molt bàsic de PHP. 356 00:21:07,610 --> 00:21:17,430 I llavors, què farem és establir el contingut de la mateixa a l'Entrada obtenir contingut. 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 Estem realment va a embolicar això en una funció útil 359 00:21:22,720 --> 00:21:31,820 PHP que proporciona diu nl2br, que Resulta noves línies, NLS, a sa, trencaments, 360 00:21:31,820 --> 00:21:35,822 perquè puguem tenir en realitat diferents apartats dins d'ella. 361 00:21:35,822 --> 00:21:38,030 I finalment el que anem de fer és guardar aquest post. 362 00:21:38,030 --> 00:21:41,686 Així que cridem a la funció estalviar en aquest model. 363 00:21:41,686 --> 00:21:43,800 Anem a guardar la publicació. 364 00:21:43,800 --> 00:21:49,970 I finalment el que farem es redirigeix ​​l'usuari específicament 365 00:21:49,970 --> 00:21:55,060 a la ruta que anem a crear en breu, àlies viewPost. 366 00:21:55,060 --> 00:22:00,435 I anem a passar en els arguments id, sent l'id d'aquest nou lloc. 367 00:22:00,435 --> 00:22:04,280 368 00:22:04,280 --> 00:22:05,640 >> Gran. 369 00:22:05,640 --> 00:22:09,090 Així que ara si realment anem i correm això. 370 00:22:09,090 --> 00:22:11,370 Anem a afegir un nou lloc. 371 00:22:11,370 --> 00:22:15,930 Diguem que aquest és el seminari 50. 372 00:22:15,930 --> 00:22:17,620 I dir, segur. 373 00:22:17,620 --> 00:22:18,240 ASDL. 374 00:22:18,240 --> 00:22:18,740 El que Sea. 375 00:22:18,740 --> 00:22:20,320 Algun tipus de contingut. 376 00:22:20,320 --> 00:22:21,180 I enviar-lo. 377 00:22:21,180 --> 00:22:23,850 I ens vam adonar que, sent. rutes no definides. 378 00:22:23,850 --> 00:22:32,340 Però si fem una ullada a phpMyAdmin i buscar si la nostra funció 379 00:22:32,340 --> 00:22:34,370 va fer res. 380 00:22:34,370 --> 00:22:36,670 Mira missatges Blog50. 381 00:22:36,670 --> 00:22:37,720 Ens adonarem que, hey. 382 00:22:37,720 --> 00:22:43,530 De fet, només va crear aquest bloc Publicació de les marques de temps segons l'especificat. 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> Així que ara anem a tornar i en realitat creen aquesta altra funció en el nostre controlador, 385 00:22:51,630 --> 00:22:54,790 específicament el controlador viewPost. 386 00:22:54,790 --> 00:23:00,290 ViewPost funció tan públic. 387 00:23:00,290 --> 00:23:04,070 Així que aquí el que farem, en lloc de tenir parèntesi buits, 388 00:23:04,070 --> 00:23:08,800 anem a voler passar a l'ID de el lloc que estem creant. 389 00:23:08,800 --> 00:23:12,800 I a partir d'aquí el que farem és en realitat consultar la base de dades per a això. 390 00:23:12,800 --> 00:23:15,140 >> Així que si nosaltres publiquem, hi ha una funció anomenada 391 00:23:15,140 --> 00:23:18,860 Troba que ens permet consultar per ID. 392 00:23:18,860 --> 00:23:22,110 En concret, en realitat, anem a utilitzar una versió alternativa d'aquest anomenat 393 00:23:22,110 --> 00:23:27,880 Troba o Fail, que ens permet per deixar de sortir d'aquesta funció, 394 00:23:27,880 --> 00:23:34,700 llançar una excepció si l'ID passem en què no existeix. 395 00:23:34,700 --> 00:23:37,500 I després farem alguna cosa similar al que vam fer anteriorment 396 00:23:37,500 --> 00:23:41,100 on muntem el contingut d'aquesta pàgina per estar 397 00:23:41,100 --> 00:23:47,950 la versió renderitzada d'aquesta nova visió que crearem, blog.view. 398 00:23:47,950 --> 00:23:51,030 >> I anem a passar a la it-- Igual que en el CS50 fer 399 00:23:51,030 --> 00:23:56,645 function-- un diccionari de variables. 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 Les claus d'aquest array associatiu convertit en variables dins de la plantilla. 402 00:24:04,620 --> 00:24:06,830 Així que anem a fer que pal. 403 00:24:06,830 --> 00:24:12,474 Així que passar indirectament el lloc que hem va preguntar des de la base de dades. . 404 00:24:12,474 --> 00:24:14,390 Ara el que anem a fer és crear aquest punt de vista 405 00:24:14,390 --> 00:24:17,560 pel que podem veure en realitat les entrades del bloc que hem construït. 406 00:24:17,560 --> 00:24:20,280 >> Així que anem a crear un arxiu anomenat view.blade.php. 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 Així que dins d'aquesta plantilla, el que farem 409 00:24:29,640 --> 00:24:39,700 està creat una pàgina simple que ens permet mostrar el contingut. 410 00:24:39,700 --> 00:24:44,280 Així que fem secció, això és abans de contingut. 411 00:24:44,280 --> 00:24:46,800 Aturi. 412 00:24:46,800 --> 00:24:53,920 I el que anem de fer dins d'aquí és 413 00:24:53,920 --> 00:24:56,930 escriure alguna cosa d'HTML per mostrar aquesta pàgina. 414 00:24:56,930 --> 00:25:03,590 >> Així que anem a embolicar amb una fantasia nou element HTML5 anomenat article. 415 00:25:03,590 --> 00:25:05,790 I aquí, anem tenir una capçalera on 416 00:25:05,790 --> 00:25:12,190 anem a simplement tenir un h1, que inclou el títol de l'entrada. 417 00:25:12,190 --> 00:25:17,120 Així que aquí, si ens fixem en aquest doble notació claudàtor, 418 00:25:17,120 --> 00:25:21,690 això farà essencialment Php echo títol de l'entrada. 419 00:25:21,690 --> 00:25:25,630 Així que és una abreviatura útil que Laravel ens proporciona. 420 00:25:25,630 --> 00:25:31,070 Així que utilitzarem aquesta notació al seu lloc. 421 00:25:31,070 --> 00:25:40,220 >> I aquí, anem a també imprimir el contingut de la mateixa. 422 00:25:40,220 --> 00:25:43,480 I aquí, anem a veure el contingut del post. 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 I a sota en el fons del que som farem és crear un peu de pàgina. 425 00:25:50,660 --> 00:25:57,690 I al peu de pàgina, anem a primera pantalla quan aquesta publicació. 426 00:25:57,690 --> 00:26:01,320 Així que aquesta va ser publicada, creat el. 427 00:26:01,320 --> 00:26:07,996 >> I Laravel utilitza una molt agradable data biblioteca anomenada Carbon. 428 00:26:07,996 --> 00:26:11,120 Així que realment podem fer una cosa anomenada difforHumans que has vist abans. 429 00:26:11,120 --> 00:26:14,360 Quan vam publicar. que dirà, com, fa cinc segons. 430 00:26:14,360 --> 00:26:16,860 Així que aquest és un molt bon funcionalitat de Laravel. 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 I, finalment, anem per tancar aquest peu de pàgina. 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> Així que ara, si ens remuntem a Home Page anem 435 00:26:31,450 --> 00:26:34,490 per veure res aquí encara perquè no hem codificat la pàgina d'inici. 436 00:26:34,490 --> 00:26:40,962 Però si anem a publicar una barra, anem a veure una excepció. 437 00:26:40,962 --> 00:26:42,670 Algú sap per què veiem una excepció? 438 00:26:42,670 --> 00:26:44,516 Què ens falta? 439 00:26:44,516 --> 00:26:45,290 Alguna idea? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 Així que el que vam fer nosaltres anteriorment per a nosaltres en realitat 442 00:26:49,790 --> 00:26:52,285 per definir com s'arriba a controlador en particular? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> ALTAVEU 1: La ruta? 445 00:26:55,770 --> 00:26:56,519 ERIC Ouyang: Sí. 446 00:26:56,519 --> 00:26:58,070 Així que encara hem de definir la ruta. 447 00:26:58,070 --> 00:26:59,794 Així que tornem aquí per routes.php. 448 00:26:59,794 --> 00:27:01,710 Es donarà compte de que en realitat no han definit 449 00:27:01,710 --> 00:27:05,010 com anem a aconseguir a aquest controlador. 450 00:27:05,010 --> 00:27:06,780 Així que ara anem a definir aquesta ruta. 451 00:27:06,780 --> 00:27:09,280 És bastant senzill, similar al que vam fer abans. 452 00:27:09,280 --> 00:27:13,910 Però el que notarem aquí és que tindrem un marcador de posició. 453 00:27:13,910 --> 00:27:18,730 >> Així que si ho fem route.get lloc slash ID. 454 00:27:18,730 --> 00:27:24,290 Així ID ara és el que va a ser aprovat al controlador. 455 00:27:24,290 --> 00:27:27,820 Això va a utilitzar el controlador que acabem de 456 00:27:27,820 --> 00:27:33,560 creat, BlogController a viewPost. 457 00:27:33,560 --> 00:27:36,420 I anem a àlies això com viewPost. 458 00:27:36,420 --> 00:27:46,544 459 00:27:46,544 --> 00:27:47,490 Gran. 460 00:27:47,490 --> 00:27:49,470 Així que ara anem a crear aquesta ruta. 461 00:27:49,470 --> 00:27:52,100 >> Així que ara si anem aquí i tornar a carregar aquesta pàgina, 462 00:27:52,100 --> 00:27:54,410 que, de fet, tenim el nostre nou bloc. 463 00:27:54,410 --> 00:27:57,710 Així que això és el que hem creat abans. 464 00:27:57,710 --> 00:28:01,320 Molt simple pàgina, però es mostra el entrada de bloc que acabem de crear. 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 Fresc. 467 00:28:04,760 --> 00:28:08,880 I si en realitat ens passem pel tot procés de creació d'una nova entrada al bloc, 468 00:28:08,880 --> 00:28:11,700 ens adonarem que tot redirigeix ​​correctament. 469 00:28:11,700 --> 00:28:12,950 Si dic: "Hola. 470 00:28:12,950 --> 00:28:15,710 Sóc Jonathan Tan ". 471 00:28:15,710 --> 00:28:18,550 Digui: "Aquest és el meu bloc." 472 00:28:18,550 --> 00:28:22,830 I presentar-lo, això crearà aquesta nova entrada al bloc amb ID 2, 473 00:28:22,830 --> 00:28:28,920 que els increments del que teníem prèviament i mostra correctament. 474 00:28:28,920 --> 00:28:30,760 Impressionant. 475 00:28:30,760 --> 00:28:32,930 >> Alguna pregunta? 476 00:28:32,930 --> 00:28:33,430 Sí? 477 00:28:33,430 --> 00:28:36,537 >> ALTAVEU 2: Com maneja Laravel desinfecció i tot per a vostè? 478 00:28:36,537 --> 00:28:37,245 ERIC Ouyang: Sí. 479 00:28:37,245 --> 00:28:42,990 Així que quan vam veure abans, quan vam entrada de còlon de còlon arribar, 480 00:28:42,990 --> 00:28:47,720 que sanitates qualsevol SQL injeccions i altres coses 481 00:28:47,720 --> 00:28:51,660 que el que es vol dur a terme si estem un usuari maliciós de la pàgina web. 482 00:28:51,660 --> 00:28:54,115 Així Laravel maneja una gran quantitat que darrere de les escenes. 483 00:28:54,115 --> 00:28:57,030 Bona pregunta. 484 00:28:57,030 --> 00:29:00,390 >> Així que donem una ullada a la pàgina d'inici. 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 Així que si primer tornem a la controlador de la pàgina principal, 487 00:29:06,790 --> 00:29:08,740 t'adonaràs que no fa molt aquí. 488 00:29:08,740 --> 00:29:11,620 Es donarà compte de que no som passant a aquest controlador 489 00:29:11,620 --> 00:29:13,830 alguna cosa particularment útil. 490 00:29:13,830 --> 00:29:16,660 És només aquest fitxer índex. 491 00:29:16,660 --> 00:29:18,770 >> Així que anem a passar a això alguna cosa útil. 492 00:29:18,770 --> 00:29:21,450 I específicament, estem passarà en els llocs. 493 00:29:21,450 --> 00:29:28,740 I Laravel ens permet fer lloc absolut, el que 494 00:29:28,740 --> 00:29:30,625 ens permetrà obtenir tots els missatges. 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 Ara bé, si ens remuntem a index.php, veuràs, hey. 497 00:29:35,730 --> 00:29:37,060 Aquí no hi ha res encara. 498 00:29:37,060 --> 00:29:41,290 Però el que volem fer aquí és en realitat recórrer, 499 00:29:41,290 --> 00:29:46,420 fer un bucle foreach en els llocs que ens permet imprimir els missatges. 500 00:29:46,420 --> 00:29:53,180 >> Missatges Així com foreach ja, el que volem fer 501 00:29:53,180 --> 00:29:57,252 s'imprimeix el contingut de l'entrada al bloc. 502 00:29:57,252 --> 00:30:00,210 Però una cosa que notaràs és que que en realitat va escriure la major part d'aquest codi 503 00:30:00,210 --> 00:30:01,370 Ja, en view.blade.php. 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 Així que el que farem en realitat és utilitzar una bona característica útil de Blade 506 00:30:08,640 --> 00:30:11,300 i factoritzar el codi comú. 507 00:30:11,300 --> 00:30:12,570 Així que anem. 508 00:30:12,570 --> 00:30:16,210 >> Anem a prendre aquest contingut aquí, i el que farem 509 00:30:16,210 --> 00:30:18,170 és crear una nova carpeta. 510 00:30:18,170 --> 00:30:20,364 Anem a cridar parcials. 511 00:30:20,364 --> 00:30:22,530 I aquí, anem per crear un post.blade.php. 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 Així que aquí, prenem en compte la forma en que volem mostrar aquests missatges. 514 00:30:33,100 --> 00:30:38,690 I aquí el que farem en lloc de realment haver de HTML directament, 515 00:30:38,690 --> 00:30:41,530 utilitzarem aquesta directiva anomenada inclouen blog.partials.post. 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> I què farem aquí és passar al post de la pàgina. 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 Així que ara si tornem aquí, anem a observi que la funcionalitat és encara 520 00:31:01,050 --> 00:31:01,550 el mateix. 521 00:31:01,550 --> 00:31:05,140 Però ara tenim aquest un factor fora de codi, aquest codi HTML. 522 00:31:05,140 --> 00:31:07,070 Així que podem utilitzar en l'Índex. 523 00:31:07,070 --> 00:31:09,090 Així que aquí, això és molt senzill. 524 00:31:09,090 --> 00:31:17,870 Tot el que fem és incloure blog.partials.post i matriu. 525 00:31:17,870 --> 00:31:20,845 I en algun lloc a abans, fem surten post. 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> Així que ara, si ens remuntem a la pàgina d'inici, anem a veure que, hey. 528 00:31:28,182 --> 00:31:30,515 Tenim una llista de tots els entrades de bloc que teníem abans. 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 Podríem voler afegir una mica de "si" condicions i condicions "else" 531 00:31:37,700 --> 00:31:39,979 de manera que si no tenim res al bloc, 532 00:31:39,979 --> 00:31:41,520 volem mostrar alguna cosa útil. 533 00:31:41,520 --> 00:31:42,570 Igual que, hey. 534 00:31:42,570 --> 00:31:44,340 No hi ha contingut publicat al bloc. 535 00:31:44,340 --> 00:31:47,670 I si vostès realment Mira el codi de distribució a GitHub, 536 00:31:47,670 --> 00:31:50,100 veuràs un exemple de com ho fem. 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> Fresc. 539 00:31:54,110 --> 00:31:54,890 Alguna pregunta? 540 00:31:54,890 --> 00:31:55,510 Sí. 541 00:31:55,510 --> 00:31:57,468 >> ALTAVEU 2: Suposo que simplement una pregunta fonamental. 542 00:31:57,468 --> 00:31:59,480 De tornada a la ruta. 543 00:31:59,480 --> 00:32:00,230 ERIC Ouyang: Sí. 544 00:32:00,230 --> 00:32:01,935 Si fem una ullada a les rutes. 545 00:32:01,935 --> 00:32:06,018 >> ALTAVEU 2: D'on ve el uses.blogcontroller a crear correus, 546 00:32:06,018 --> 00:32:07,560 ¿Què ens dirigeixen a? 547 00:32:07,560 --> 00:32:08,310 ERIC Ouyang: Sí. 548 00:32:08,310 --> 00:32:08,550 Sí. 549 00:32:08,550 --> 00:32:09,716 >> ALTAVEU 2: O el que és que-- 550 00:32:09,716 --> 00:32:12,620 ERIC Ouyang: Llavors, fer una ullada, per exemple per exemple, aquesta ruta aquí. 551 00:32:12,620 --> 00:32:17,190 La primera part és la real URL que l'usuari va a anar. 552 00:32:17,190 --> 00:32:19,930 I aquesta sèrie aquí, matriu associativa, defineix 553 00:32:19,930 --> 00:32:24,520 com volem tenir la aplicació acte en resposta a la mateixa. 554 00:32:24,520 --> 00:32:29,090 Així que s'utilitza és el controlador, la funció que ens 555 00:32:29,090 --> 00:32:31,610 voler cridar quan un usuari va a aquest URL. 556 00:32:31,610 --> 00:32:35,190 Així viewPost aquí era un funció que hem definit a l'interior 557 00:32:35,190 --> 00:32:36,100 de BlogController-- 558 00:32:36,100 --> 00:32:37,160 >> ALTAVEU 2: Ja veig. 559 00:32:37,160 --> 00:32:39,368 >> ERIC Ouyang: --així que en realitat pot fer que un punt de vista, 560 00:32:39,368 --> 00:32:42,590 realitzar alguns càlculs, interactuar amb la base de dades SQL. 561 00:32:42,590 --> 00:32:43,560 >> ALTAVEU 2: OK. 562 00:32:43,560 --> 00:32:46,960 >> ERIC Ouyang: I després l'altre part ", ja que" és un àlies que fem servir. 563 00:32:46,960 --> 00:32:50,714 Així que si ens adonem quan hem creat el formulari, 564 00:32:50,714 --> 00:32:52,380 t'adonaràs que l'URL :: routecreatePost. 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 Per tant, substitueix en el real URL perquè no som dur 567 00:32:58,330 --> 00:33:02,940 codificació d'aquests en el que podem canviar- una vegada, diem si volíem canviar de nom. 568 00:33:02,940 --> 00:33:06,055 En lloc de barra posterior nou, volem fer com, p 569 00:33:06,055 --> 00:33:09,490 reduir radicalment nou només per netejar les nostres URL una mica. 570 00:33:09,490 --> 00:33:14,740 Ens agradaria canviar en un sol lloc en comptes que a través de tots els diferents arxius. 571 00:33:14,740 --> 00:33:15,451 >> Fresc. 572 00:33:15,451 --> 00:33:15,950 Això és bo. 573 00:33:15,950 --> 00:33:20,070 Així que ara tenim una molt plataforma de blocs bàsica. 574 00:33:20,070 --> 00:33:24,260 Probablement ens volem afegir a un botó per que en realitat podem crear nous llocs. 575 00:33:24,260 --> 00:33:27,850 Així que si fem un cop d'ull al Layout Master, 576 00:33:27,850 --> 00:33:31,280 tenim una secció anomenada Capçalera Dret que només hem definit en la part superior. 577 00:33:31,280 --> 00:33:34,820 Així que podem afegir botons a la part superior de la capçalera. 578 00:33:34,820 --> 00:33:43,950 >> Així que si anem a index.blade.php, en realitat fer és definir el que passa a l'interior d'aquí. 579 00:33:43,950 --> 00:33:46,970 Així que aquesta secció Capçalera Dret, el que farem 580 00:33:46,970 --> 00:33:55,240 és afegir en un botó per anar a la URL definit per la ruta nova entrada. 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 Només per netejar i fer és bonic i tot Bootstrap, 583 00:34:01,660 --> 00:34:04,630 farem aquest botó predeterminat. 584 00:34:04,630 --> 00:34:07,794 Anem a fer el gran per a la diversió. 585 00:34:07,794 --> 00:34:09,969 >> I dins d'ella, podríem posar una mica de text. 586 00:34:09,969 --> 00:34:14,030 Però el Bootstrap proporciona és glyphicons. 587 00:34:14,030 --> 00:34:17,840 Així que en realitat podem afegir a aquesta agradable llapis que vam veure anteriorment. 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-llapis. 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 Així que això ens permetrà posar en una icona en lloc de text. 593 00:34:35,340 --> 00:34:38,960 Ara bé, si ens aturem, aquest definirà aquesta secció. 594 00:34:38,960 --> 00:34:39,460 I, sent. 595 00:34:39,460 --> 00:34:45,000 Tenim un botó agradable que ens uneix directament al afegir una pàgina de bloc. 596 00:34:45,000 --> 00:34:46,659 >> Així que tenim una bastant simple bloc. 597 00:34:46,659 --> 00:34:49,710 Podem afegir coses a la mateixa. 598 00:34:49,710 --> 00:34:53,650 Però el que en general esperem dels blocs està comentant. 599 00:34:53,650 --> 00:34:57,340 Pel que és realment important per a nosaltres tenir, dir, si algú visita un lloc web 600 00:34:57,340 --> 00:35:00,620 i realment li agrada el post que poden participar en el debat 601 00:35:00,620 --> 00:35:03,100 amb altres persones que visiten la pàgina. 602 00:35:03,100 --> 00:35:07,050 Així que anirem i crear una nova taula de base de dades i un nou model 603 00:35:07,050 --> 00:35:12,220 perquè puguem associar comenta amb els pals. 604 00:35:12,220 --> 00:35:17,370 >> Així que el primer pas, igual que abans, és que necessitem per executar una migració. 605 00:35:17,370 --> 00:35:21,982 Així com abans, ho fem php artesanal migren: fer. 606 00:35:21,982 --> 00:35:24,440 I crearem una anomenat create_comments_table. 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 Això crearà un fitxer que té la nostra nova migració. 609 00:35:36,080 --> 00:35:40,170 I anem a, com abans, definir una nova taula. 610 00:35:40,170 --> 00:35:42,773 Així esquema :: crear un taula qualificar els comentaris. 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 Aquesta funció aquí. 613 00:35:48,430 --> 00:35:51,620 I dins d'aquest quadre el que farem és primer, 614 00:35:51,620 --> 00:35:54,260 com abans, assigni un ID. 615 00:35:54,260 --> 00:35:56,552 Incrementa ID. 616 00:35:56,552 --> 00:36:05,440 >> Permetrem que els usuaris associïn el seu nom amb un comentari particular. 617 00:36:05,440 --> 00:36:10,080 Tindrem una mica de contingut que va de la mà amb això, el contingut del text. 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 I aquí el que anem a fer és una mica diferent. 620 00:36:15,910 --> 00:36:23,620 Crearem un enter això es diu post_id que 621 00:36:23,620 --> 00:36:32,100 significarà el lloc un comentari en particular va amb. 622 00:36:32,100 --> 00:36:35,410 >> A més, de fet anem a establir una restricció de clau externa en això. 623 00:36:35,410 --> 00:36:37,750 Així MySQL farà complir això. 624 00:36:37,750 --> 00:36:39,840 No estem tractant de assignar comentari nombre 625 00:36:39,840 --> 00:36:44,440 5 per a publicar 5000 si no tenim tenia 5.000 llocs en ell. 626 00:36:44,440 --> 00:36:50,240 Així que el que fem aquí, fem post_id estrangera 627 00:36:50,240 --> 00:37:02,046 estarà associat amb el camp ID dels llocs de la taula. 628 00:37:02,046 --> 00:37:05,900 I que en realitat farem alguna cosa una altra cosa útil, és onDelete. 629 00:37:05,900 --> 00:37:11,180 >> Així que si esborrem alguns Publicació de la base de dades, 630 00:37:11,180 --> 00:37:15,507 que volem connectar en cascada la esborra els comentaris també. 631 00:37:15,507 --> 00:37:18,090 Perquè no és molt útil per a nosaltres tenir comentaris en els posts 632 00:37:18,090 --> 00:37:19,900 que no existeixen. 633 00:37:19,900 --> 00:37:23,764 I, finalment, igual que abans, estem va a establir marques de temps en això. 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 I igual que abans, anem a té la migració inversa sigui 636 00:37:33,510 --> 00:37:37,920 eliminar la taula de comentaris. 637 00:37:37,920 --> 00:37:40,070 >> Així que ara si ens remuntem d'aquí, anem 638 00:37:40,070 --> 00:37:43,110 per executar aquesta migració, migrar artesanal. 639 00:37:43,110 --> 00:37:46,400 I ara s'aplica aquest migració que acabem de crear. 640 00:37:46,400 --> 00:37:50,080 Així que si tenim una ullada a phpMyAdmin, que fem, de fet, ara 641 00:37:50,080 --> 00:37:53,210 tenir una taula de comentaris que té la estructura que només hem especificat. 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 Així com abans, estem crearà un nou model 644 00:37:59,610 --> 00:38:04,450 abstreure la taula de SQL que acabem de crear. 645 00:38:04,450 --> 00:38:05,450 >> Així que anem a afegir un nou arxiu. 646 00:38:05,450 --> 00:38:06,908 Anem a cridar comment.php. 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 I això és en realitat serà bastant directa, amb un lleuger canvi 649 00:38:15,490 --> 00:38:17,520 del que teníem abans. 650 00:38:17,520 --> 00:38:22,790 Així classe Comment estén eloqüent. 651 00:38:22,790 --> 00:38:25,930 I el que anem de fer aquí és definir 652 00:38:25,930 --> 00:38:31,360 una funció que és la relació amb altres models. 653 00:38:31,360 --> 00:38:39,250 Així que tindrem una funció posterior aquí que torna aquesta relació. 654 00:38:39,250 --> 00:38:43,330 Així que estem especificant que això pertany a publicar, 655 00:38:43,330 --> 00:38:49,200 dient que hi ha un lloc que aquest comentari pertany. 656 00:38:49,200 --> 00:38:53,917 >> En realitat, això ha de ser P majúscula per al model. 657 00:38:53,917 --> 00:38:56,500 I ara just a l'altre flip banda, hem de dir que, hey. 658 00:38:56,500 --> 00:38:58,160 Missatges tenen comentaris. 659 00:38:58,160 --> 00:39:03,030 Així que el que farem és definir els comentaris de funció pública. 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 I aquí es torna Això té moltes comentari. 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 Així que ara per art de màgia quan tenim un post, podem obtenir els comentaris d'atributs 664 00:39:22,010 --> 00:39:25,615 i que va a omplir amb el informació de la base de dades. 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> Així que anem a anar a través de realitat i afegir una nova característica al nostre arxiu de vista 667 00:39:38,220 --> 00:39:43,600 de manera que poder tant a la pantalla i crear comentaris. 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 Així que anem a definir una nova secció. 670 00:39:56,865 --> 00:39:59,890 Anem a la separen amb un regle horitzontal. 671 00:39:59,890 --> 00:40:04,065 Secció id = "comentaris". 672 00:40:04,065 --> 00:40:06,990 El que farem aquí és, com abans, 673 00:40:06,990 --> 00:40:09,880 iterar a través de tots els comentaris. 674 00:40:09,880 --> 00:40:12,960 Així que en realitat la forma en què fem això és, com ja he dit, bastant màgic. 675 00:40:12,960 --> 00:40:14,440 >> Fem enviar comentaris. 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 I després podem fer això per a cada bucle sobre cadascun dels comentaris. 678 00:40:22,710 --> 00:40:25,740 I què anem a fer és div class comentari, 679 00:40:25,740 --> 00:40:29,240 i anem a realitat imprimir aquest comentari. 680 00:40:29,240 --> 00:40:34,150 Així que mostrar que sent, comentar nom-- la persona 681 00:40:34,150 --> 00:40:38,080 que va col·locar aquest comment-- diu dot dot dot. 682 00:40:38,080 --> 00:40:41,240 Anem a posar això en un bloc cita, només perquè es vegi bonic. 683 00:40:41,240 --> 00:40:46,470 I després comentar cita de bloc de contingut. 684 00:40:46,470 --> 00:40:49,790 685 00:40:49,790 --> 00:40:50,892 I foreach. 686 00:40:50,892 --> 00:40:53,100 Així que ara això va a loop a través de tots els comentaris 687 00:40:53,100 --> 00:40:56,500 que està associat amb cadascun dels llocs 688 00:40:56,500 --> 00:41:00,960 i mostrar cada un d'aquests comentaris. 689 00:41:00,960 --> 00:41:05,120 Vaig a afegir una altra secció baix aquí, el que ens permet afegir un comentari. 690 00:41:05,120 --> 00:41:07,400 Així classe h3. 691 00:41:07,400 --> 00:41:09,580 Posi un títol aquí. 692 00:41:09,580 --> 00:41:10,934 Afegir un comentari. 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 I anem a definir una nova forma. 695 00:41:15,700 --> 00:41:18,730 >> Així com abans, estem farem una acció de formulari. 696 00:41:18,730 --> 00:41:22,740 I aquí, la nova acció és que estem definirà un nou controlador que 697 00:41:22,740 --> 00:41:26,770 ens permet respondre a publicar les sol·licituds de creació de comentaris. 698 00:41:26,770 --> 00:41:33,365 Així createComment URL :: ruta. 699 00:41:33,365 --> 00:41:37,730 Vaig a passar en el paràmetre aquí. 700 00:41:37,730 --> 00:41:40,380 La identificació del lloc que estem creant comentari sobre. 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 I a continuació, el mètode d'aquesta manera serà lloc. 703 00:41:50,280 --> 00:41:57,240 >> Ara anem a afegir a un dos camps, el grup forma. 704 00:41:57,240 --> 00:42:04,670 Això serà una entrada amb el nom "nom" i class = "-control de formulari", 705 00:42:04,670 --> 00:42:14,250 type = "text", i amb la marcador de posició = "El teu nom". 706 00:42:14,250 --> 00:42:19,380 També definirem un altre camp de formulari, que 707 00:42:19,380 --> 00:42:22,970 serà un text àrea, ja que teníem abans. 708 00:42:22,970 --> 00:42:25,480 Igual que abans, en diuen contingut. 709 00:42:25,480 --> 00:42:31,160 Class = "control de la forma". 710 00:42:31,160 --> 00:42:41,660 Marcador de posició = "Introduïu aquí". 711 00:42:41,660 --> 00:42:44,100 >> I de la mateixa manera que ens en realitat pot enviar-lo, 712 00:42:44,100 --> 00:42:55,740 submit tipus i classe = "btn btn-primària." 713 00:42:55,740 --> 00:42:57,005 Tanqueu el formulari. 714 00:42:57,005 --> 00:42:59,010 Tancar aquesta acció. 715 00:42:59,010 --> 00:43:06,580 Així que ara si tornar a carregar aquesta pàgina en tenim, per exemple, un lloc determinat. 716 00:43:06,580 --> 00:43:10,310 Hem de reiniciar el servidor. 717 00:43:10,310 --> 00:43:12,340 PHP artesanal servir. 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 Reinicieu això. 720 00:43:18,334 --> 00:43:19,500 Hem de definir la ruta. 721 00:43:19,500 --> 00:43:25,090 Però per ara, anem a prendre aquest de manera que en realitat li podem mostrar 722 00:43:25,090 --> 00:43:28,750 el que la pàgina s'assembla, i després que en realitat a crear aquesta ruta. 723 00:43:28,750 --> 00:43:29,250 Així que, hey. 724 00:43:29,250 --> 00:43:37,080 Tenim aquesta nova forma aquí baix perquè puguem crear comentaris. 725 00:43:37,080 --> 00:43:39,950 Així que anem a definir una realitat funció dins del controlador 726 00:43:39,950 --> 00:43:43,020 perquè puguem afegir comentaris. 727 00:43:43,020 --> 00:43:43,650 Tornem. 728 00:43:43,650 --> 00:43:48,420 I dins d'blogcontroller.php, el que farem 729 00:43:48,420 --> 00:43:51,620 és crear una nova funció anomenada crear comentari. 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> Funció createComment Pública. 732 00:43:57,040 --> 00:44:00,130 Això tindrà un sol paràmetre, l'ID dels missatges 733 00:44:00,130 --> 00:44:02,280 que estem comentant. 734 00:44:02,280 --> 00:44:04,790 I igual que abans, estem arribarà primer al pal. 735 00:44:04,790 --> 00:44:10,790 Així de publicar, Identificació findOrfail. 736 00:44:10,790 --> 00:44:15,020 Després, ens anem per crear un nou comentari. 737 00:44:15,020 --> 00:44:18,880 Per tant comentari = new comentari. 738 00:44:18,880 --> 00:44:26,820 Comentari name = Entrada :: get nom. 739 00:44:26,820 --> 00:44:39,420 Contingut Comment = la mateixa línia nova en les pauses d'entrada :: get contingut. 740 00:44:39,420 --> 00:44:43,460 >> I, finalment, anem a haver de associar aquest comentari amb el lloc. 741 00:44:43,460 --> 00:44:47,230 Així que utilitzarem aquesta funció, comentaris, 742 00:44:47,230 --> 00:44:50,260 que ens permet estalviar aquesta relació. 743 00:44:50,260 --> 00:44:54,780 Així que ara aquest comentari tindrà automàticament l'ID del missatge. 744 00:44:54,780 --> 00:44:57,640 També podríem configurar- manualment, però això és 745 00:44:57,640 --> 00:45:02,490 més fàcil de llegir en la mesura ja que la funció va. 746 00:45:02,490 --> 00:45:05,860 I després realitzem això, el que vull fer 747 00:45:05,860 --> 00:45:10,840 és redirigir l'usuari a la ruta especificada per viewPost 748 00:45:10,840 --> 00:45:16,010 amb la matriu amb el paràmetre de la ID del missatge. 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> I ara perquè aquesta realitat funcions, hem de definir aquesta ruta. 751 00:45:24,660 --> 00:45:27,126 Ruta :: lloc. 752 00:45:27,126 --> 00:45:32,800 I ara anem a trucar a aquest ja slash slash ID comentari. 753 00:45:32,800 --> 00:45:36,725 Matriu utilitza la nova funció que acabem de crear. 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 com createComment. 757 00:45:44,770 --> 00:45:47,430 758 00:45:47,430 --> 00:45:50,120 Gran. 759 00:45:50,120 --> 00:45:56,150 >> Així que ara espero que si refresquem aquesta pàgina i afegir en un comentari, per exemple, David Malan. 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 "Esperem que això funciona." 762 00:46:03,920 --> 00:46:05,216 Enviar. 763 00:46:05,216 --> 00:46:09,050 Nosaltres, de fet, tenim una comentar en aquest bloc. 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 Fresc. 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 Així que ara tenim un bastant bloc funcional. 768 00:46:21,430 --> 00:46:23,180 Només anem a afegir un parell de retocs per 769 00:46:23,180 --> 00:46:29,090 que tenim una mica més útil informació sobre aquests missatges. 770 00:46:29,090 --> 00:46:32,780 >> Així que si ens remuntem a la primera pàgina, no tenim cap sentit 771 00:46:32,780 --> 00:46:38,790 de la quantitat de comentaris són en cada un d'aquests llocs. 772 00:46:38,790 --> 00:46:41,340 Així que el que estem realment va de fer és, dins del nostre model, 773 00:46:41,340 --> 00:46:51,250 definir una funció auxiliar que permet ens permet especificar el nombre de comentaris 774 00:46:51,250 --> 00:46:53,020 que van amb un lloc determinat. 775 00:46:53,020 --> 00:46:56,050 Així que anem a crear una funció auxiliar. 776 00:46:56,050 --> 00:46:58,020 >> Funció pública. 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 Així que una cadena que especifica el nombre de comentaris que van juntament amb ella. 780 00:47:07,180 --> 00:47:12,850 I el que farem és dir que num = aquesta comentaris compte. 781 00:47:12,850 --> 00:47:15,150 Així que anem a comptar el nombre d'observacions. 782 00:47:15,150 --> 00:47:22,900 I si aquest nombre és igual a 1, estem només va a tornar 1 comentari. 783 00:47:22,900 --> 00:47:28,890 I després una altra cosa, volem tornar la concatenació de num i comentaris, 784 00:47:28,890 --> 00:47:31,890 per la qual cosa tenim la pluralització correcta. 785 00:47:31,890 --> 00:47:33,380 Simplement feu d'això una única oferta. 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 Un dels comentaris. 788 00:47:37,640 --> 00:47:41,140 >> I ara podem utilitzar aquesta funció directament dins de la nostra visió. 789 00:47:41,140 --> 00:47:44,510 Així que si ens remuntem a la missatges parcials que hem creat, 790 00:47:44,510 --> 00:47:49,370 ara volem realment mostrar el nombre de comentaris. 791 00:47:49,370 --> 00:47:52,660 Així que el que podem fer és posterior, utilitzeu aquesta funció 792 00:47:52,660 --> 00:47:57,230 que acabem de crear a mostrar el nombre de comentaris. 793 00:47:57,230 --> 00:48:00,440 Així que si ara ens refresquem, que fa, de fet, la pantalla 794 00:48:00,440 --> 00:48:02,240 els comentaris de nombres que van juntament amb ella. 795 00:48:02,240 --> 00:48:05,320 >> Si volguéssim ser de luxe si realment mirar el codi de distribució, 796 00:48:05,320 --> 00:48:07,800 en realitat podem vincular això als comentaris. 797 00:48:07,800 --> 00:48:17,040 Si vostè recorda, hem definit dins de la veure que això no té comentaris secció d'identificació. 798 00:48:17,040 --> 00:48:22,460 Així que si en realitat volia vincular directament a la secció de comentaris, el que 799 00:48:22,460 --> 00:48:36,000 volem fer aquí és a href URL del viewPost ruta. 800 00:48:36,000 --> 00:48:40,550 Passi el ID varietat d'ID de missatge. 801 00:48:40,550 --> 00:48:46,140 I després volem anar a específicament la secció de comentaris. 802 00:48:46,140 --> 00:48:49,900 >> Aquí anem a tancar l'etiqueta A. 803 00:48:49,900 --> 00:48:52,950 Així que ara si refresquem aquest pàgina, fem clic sobre aquest. 804 00:48:52,950 --> 00:48:54,700 Anirem directament a la secció de comentaris. 805 00:48:54,700 --> 00:48:57,580 Si tinguéssim un post més llarg, es pot veure realment aquest rebot cap avall. 806 00:48:57,580 --> 00:49:02,668 Però t'adonaràs que és no en la part superior de la pàgina. 807 00:49:02,668 --> 00:49:04,090 Fresc. 808 00:49:04,090 --> 00:49:04,600 Gran. 809 00:49:04,600 --> 00:49:08,582 Així que això és un bastant senzill exemple d'alguna cosa senzill 810 00:49:08,582 --> 00:49:09,790 que es pot fer amb Laravel. 811 00:49:09,790 --> 00:49:13,230 >> Però vostè pot notar aquí que hem fet un munt de coses 812 00:49:13,230 --> 00:49:16,200 amb força poca quantitat de codi. 813 00:49:16,200 --> 00:49:19,420 Laravel ens permet fer la Consultes SQL darrere de les escenes. 814 00:49:19,420 --> 00:49:21,960 Es fa el sanejament per a nosaltres darrere de les escenes. 815 00:49:21,960 --> 00:49:25,940 Ens permet fer aquestes relacions molt fàcilment sense necessitat 816 00:49:25,940 --> 00:49:33,350 fer qualsevol SQL unir declaracions a combinar comentaris amb el que els llocs. 817 00:49:33,350 --> 00:49:36,480 Ens permet fer això herència de plantilles 818 00:49:36,480 --> 00:49:43,780 de manera que podem definir aquests implantació arxius, així que no estan repetir-nos, 819 00:49:43,780 --> 00:49:47,020 igual que quan vam haver visualització de les entrades del bloc 820 00:49:47,020 --> 00:49:50,770 que nosaltres no hem de copia i enganxa el codi. 821 00:49:50,770 --> 00:49:55,450 >> I a partir d'aquí es pot construir aplicacions cada vegada més complicats. 822 00:49:55,450 --> 00:49:58,370 Es pot imaginar si volgut posar en pràctica per accedir al sistema, 823 00:49:58,370 --> 00:50:05,532 podríem dir, portar a un tercer marc que ens permet fer això. 824 00:50:05,532 --> 00:50:07,490 Hi ha un munt d'ells que són molt, molt 825 00:50:07,490 --> 00:50:09,970 gran que pot fer, com, recuperació de la contrasenya. 826 00:50:09,970 --> 00:50:14,450 I és que una enviarà restablir la contrasenya de correu electrònic. 827 00:50:14,450 --> 00:50:18,260 Podem implementar permís de manera que pugui crear un lloc, 828 00:50:18,260 --> 00:50:20,350 però algú més no pot editar-lo. 829 00:50:20,350 --> 00:50:24,610 Podem implementar funcionalitat per esborrar els missatges. 830 00:50:24,610 --> 00:50:28,160 >> Però vostè pot veure aquí que tenim prou tant tots els components rudimentaris 831 00:50:28,160 --> 00:50:31,640 per construir alguns molt, molt, aplicacions web dinàmiques i emocionants. 832 00:50:31,640 --> 00:50:34,035 Així que amb això, crec que estem bé. 833 00:50:34,035 --> 00:50:35,720 Vostès tenen alguna pregunta? 834 00:50:35,720 --> 00:50:36,220 Sí? 835 00:50:36,220 --> 00:50:38,090 >> ALTAVEU 3: Com et obtenir contingut estàtic? 836 00:50:38,090 --> 00:50:39,256 >> ERIC Ouyang: El contingut estàtic. 837 00:50:39,256 --> 00:50:45,520 Així que vostè va veure abans que quan vam tenir això d'aquí, aquest contingut de disseny, 838 00:50:45,520 --> 00:50:49,625 vista maquillatge, vam tenir aquest sense aquesta matriu després. 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index, vam tenir aquest només com un arxiu estàtic. 841 00:50:59,152 --> 00:51:00,860 Així que si no aprovem res al llarg d'ella, 842 00:51:00,860 --> 00:51:03,340 només va a representar l'HTML directament. 843 00:51:03,340 --> 00:51:09,240 Però si passem en aquest associatiu varietat de llocs, que és dinàmicament 844 00:51:09,240 --> 00:51:12,950 tret de la base de dades, ens pot fer que la pàgina dinàmica. 845 00:51:12,950 --> 00:51:13,450 Fresc. 846 00:51:13,450 --> 00:51:14,830 Alguna altra pregunta? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 ALTAVEU 3: Com compararia Laravel que potser algunes altres opcions? 849 00:51:19,720 --> 00:51:20,525 ERIC Ouyang: Segur. 850 00:51:20,525 --> 00:51:21,025 Sí. 851 00:51:21,025 --> 00:51:23,430 Així Laravel és-- això és una gran pregunta-- 852 00:51:23,430 --> 00:51:26,190 una de les moltes opcions per als frameworks web. 853 00:51:26,190 --> 00:51:31,160 Així Ruby on Rails és una que és popular. 854 00:51:31,160 --> 00:51:34,590 Crec Twitter solia ser implementat amb Ruby on Rails. 855 00:51:34,590 --> 00:51:37,600 Crec que han canviat des de llavors. 856 00:51:37,600 --> 00:51:40,780 Hi ha una altra que es diu FuelPHP. 857 00:51:40,780 --> 00:51:46,120 >> Així Ruby on Rails utilitza el llenguatge Ruby i implementa un munt de coses MVC 858 00:51:46,120 --> 00:51:48,200 que veiem aquí. 859 00:51:48,200 --> 00:51:52,320 FuelPHP és un altre framework PHP. 860 00:51:52,320 --> 00:51:54,490 Django és un dels meus favorits. 861 00:51:54,490 --> 00:51:57,010 És un framework de desenvolupament web per Python. 862 00:51:57,010 --> 00:52:01,270 Així que vostè pot escriure el seu aplicació web en Python. 863 00:52:01,270 --> 00:52:03,760 Així que hi ha un munt d'aquestes opcions. 864 00:52:03,760 --> 00:52:06,170 >> Laravel, crec, per i gran és el meu dret favorita 865 00:52:06,170 --> 00:52:08,232 ara per PHP només perquè dels components 866 00:52:08,232 --> 00:52:09,440 que hem parlat abans. 867 00:52:09,440 --> 00:52:11,910 És Compositor habilitat. 868 00:52:11,910 --> 00:52:15,750 Inclou un molt, molt sistema ORM expressiu. 869 00:52:15,750 --> 00:52:18,800 També té una plantilla realment impressionant llenguatge que alguns dels altres 870 00:52:18,800 --> 00:52:20,630 simplement no proporcionen. 871 00:52:20,630 --> 00:52:21,400 I migracions. 872 00:52:21,400 --> 00:52:23,432 Les migracions són impressionants. 873 00:52:23,432 --> 00:52:24,860 Refredar? 874 00:52:24,860 --> 00:52:25,390 Impressionant. 875 00:52:25,390 --> 00:52:27,560 Bé, moltes gràcies per veient aquest seminari, 876 00:52:27,560 --> 00:52:30,650 i bona sort en els seus projectes finals. 877 00:52:30,650 --> 00:52:31,616