1 00:00:00,000 --> 00:00:02,538 >> [Música tocando] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ERIC Ouyang: Ei, todo o mundo. 4 00:00:12,390 --> 00:00:13,580 Benvido. 5 00:00:13,580 --> 00:00:16,860 Esta é a construción dinámica Web Apps con Laravel. 6 00:00:16,860 --> 00:00:18,290 O meu nome é Eric Ouyang. 7 00:00:18,290 --> 00:00:23,860 Eu son un estudante de segundo ano estudando estudos sociais cun secundario en ciencia da computación, 8 00:00:23,860 --> 00:00:27,290 e eu vivo en Adams Casa aquí en Harvard. 9 00:00:27,290 --> 00:00:33,340 >> Entón Laravel, na súa forma máis core, é unha estrutura de aplicación web MVC. 10 00:00:33,340 --> 00:00:38,265 Así como o que vostedes teñen está a facer con CS50 Finanzas, 11 00:00:38,265 --> 00:00:42,480 Laravel é un framework que permite Lo a construír aplicacións web dinámicas. 12 00:00:42,480 --> 00:00:47,710 Así, pode pensar sobre iso nalgúns sentidos como unha extensión do tipo de material 13 00:00:47,710 --> 00:00:50,470 ten feito en CS50 Finanzas, pero un sistema que é 14 00:00:50,470 --> 00:00:55,890 moito máis robusto, unha gran cantidade máis elegante, nalgúns sentidos, 15 00:00:55,890 --> 00:00:57,870 e ofrece unha gran cantidade de funcionalidade para ti 16 00:00:57,870 --> 00:01:03,060 para construír bastante complexo aplicacións web. 17 00:01:03,060 --> 00:01:05,010 Entón, imos pasar por algúns das principais características, 18 00:01:05,010 --> 00:01:09,550 e despois imos mergullar nunha exemplo de construción dun blog 19 00:01:09,550 --> 00:01:12,500 aplicación con Laravel. 20 00:01:12,500 --> 00:01:16,700 >> Así, unha das primeiras cousas que diferencia de tipo MVC de traballo 21 00:01:16,700 --> 00:01:22,100 que ten feito con CS50 é el inclúe un motor ORM. 22 00:01:22,100 --> 00:01:27,410 Entón ORM significa obxecto relacional. 23 00:01:27,410 --> 00:01:31,080 Entón, iso permite que constrúe unha capa de abstracción 24 00:01:31,080 --> 00:01:35,230 entre a base de datos e os seus controladores. 25 00:01:35,230 --> 00:01:39,150 Así, ao contrario do CS50 Finanzas onde ti directamente facer consultas, 26 00:01:39,150 --> 00:01:44,790 a capa ORM permite abstracto que lonxe e crear 27 00:01:44,790 --> 00:01:48,085 modelos que son máis poderosos que pode directamente con consultas SQL. 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> Outra cousa que é realmente útil é templates herdadas. 30 00:01:53,510 --> 00:01:58,990 Entón, vai notar no CS50 Finanzas, acaba reescribir unha morea de cousas, 31 00:01:58,990 --> 00:02:03,150 onde lugares que podería potencialmente reutilizar cousas, non é capaz de facer. 32 00:02:03,150 --> 00:02:08,539 Entón, aquí no Laravel, pode utilizar o que é coñecido como o mecanismo de modelo de lámina 33 00:02:08,539 --> 00:02:10,530 para crear un esquema mestre. 34 00:02:10,530 --> 00:02:15,840 E a partir de aí, podes herdar de xeito que os sub-modelos poden, de feito, 35 00:02:15,840 --> 00:02:21,210 inclúen elementos dentro este modelo base maior. 36 00:02:21,210 --> 00:02:21,810 >> Migración. 37 00:02:21,810 --> 00:02:29,010 Polo tanto, esta é unha características bastante estándar en a maioría dos frameworks de aplicación web modernos. 38 00:02:29,010 --> 00:02:32,710 Entón, o que lle permite representar os cambios do esquema da base de datos no código. 39 00:02:32,710 --> 00:02:39,200 Así, sen dirán, phpMyAdmin, realmente pode crear estas migracións 40 00:02:39,200 --> 00:02:44,660 onde representa a base de datos cambios de esquema no código directamente. 41 00:02:44,660 --> 00:02:48,070 E iso permite que a-- especialmente Se ten varias persoas traballando 42 00:02:48,070 --> 00:02:52,650 na mesma tea application-- seguir estas modificacións, 43 00:02:52,650 --> 00:02:55,380 dicir no GitHub, ou algún outro repositorio. 44 00:02:55,380 --> 00:03:00,880 >> Polo tanto, esta é realmente útil e mitiga a necesidade 45 00:03:00,880 --> 00:03:04,580 para, por exemplo, pasar en torno a unha morea de SQL lixeiras. 46 00:03:04,580 --> 00:03:07,140 E, finalmente, é Composer algo realmente útil 47 00:03:07,140 --> 00:03:09,840 que permite que use outro código das persoas para facer cousas impresionantes. 48 00:03:09,840 --> 00:03:14,020 Entón Laravel do estruturada como varios paquetes Composer. 49 00:03:14,020 --> 00:03:17,870 Entón, dicir que se quería traer en un paquete de autenticación 50 00:03:17,870 --> 00:03:23,440 ou se quere traer algún tipo de script xerador ou un administrador 51 00:03:23,440 --> 00:03:26,910 interface, pode plug and play eses compoñentes co compositor. 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> Entón, imos comezar. 54 00:03:31,570 --> 00:03:35,185 Calquera dúbida de ti caras antes de comezar? 55 00:03:35,185 --> 00:03:36,500 Non hai preguntas? 56 00:03:36,500 --> 00:03:37,490 Con estilo. 57 00:03:37,490 --> 00:03:39,990 Así, o primeiro paso é instalar Composer. 58 00:03:39,990 --> 00:03:43,590 Entón Composer permite que xestionar estas dependencias, 59 00:03:43,590 --> 00:03:47,770 se é o cadro Laravel ou algunha outra extensión de terceiros. 60 00:03:47,770 --> 00:03:50,400 O primeiro mando permite descargar Composer, 61 00:03:50,400 --> 00:03:55,890 eo segundo mando permite que movelo ao cartafol bin locais 62 00:03:55,890 --> 00:04:01,340 de modo que pode executar Composer directamente a través do terminal. 63 00:04:01,340 --> 00:04:05,405 >> Despois diso, dalle crear un novo proxecto Laravel. 64 00:04:05,405 --> 00:04:07,280 En realidade, estamos indo a utilizar algún código de exemplo 65 00:04:07,280 --> 00:04:10,760 que engada para crear este blog. 66 00:04:10,760 --> 00:04:14,420 Pero se está empezando do cero, usaría ese mando 67 00:04:14,420 --> 00:04:18,160 aquí enriba, compositor crearse proxecto, laravel cortar laravel, e logo 68 00:04:18,160 --> 00:04:19,940 o nome do teu proxecto. 69 00:04:19,940 --> 00:04:22,275 E que incluirá todos os códigos de distribución 70 00:04:22,275 --> 00:04:23,733 para iniciar un novo proxecto Laravel. 71 00:04:23,733 --> 00:04:28,870 Polo tanto, para a súa CS50 proxectos finais, vai probablemente vai querer usar este comando. 72 00:04:28,870 --> 00:04:31,210 >> Pero imos comezar con isto. 73 00:04:31,210 --> 00:04:34,630 Polo tanto, unha vez que fixo que, está indo para obter 74 00:04:34,630 --> 00:04:40,190 un número moi grande de arquivos en blog50. 75 00:04:40,190 --> 00:04:43,840 Entón imos pasar por algúns destes compoñentes. 76 00:04:43,840 --> 00:04:49,060 Vai notar a esta ruta directorio, hai un cartafol app. 77 00:04:49,060 --> 00:04:52,960 Dentro do cartafol app, hai un par de votos cartafoles. 78 00:04:52,960 --> 00:04:56,330 De nota para comezar é este cartafol config. 79 00:04:56,330 --> 00:04:59,210 Entón, iso configura como a súa aplicación web é 80 00:04:59,210 --> 00:05:04,350 vai, digamos, acceder persoas ou cousas de caixa ou conectar á base de datos. 81 00:05:04,350 --> 00:05:06,400 >> E o que é realmente útil é que Laravel 82 00:05:06,400 --> 00:05:09,130 permite configurar diferentes ambientes de desenvolvemento. 83 00:05:09,130 --> 00:05:12,090 Entón, o que nós fixemos aquí é se imos no cartafol local, 84 00:05:12,090 --> 00:05:14,720 hai un ficheiro database.php. 85 00:05:14,720 --> 00:05:18,320 E vai notar aquí que nós configurar unha conexión MySQL que 86 00:05:18,320 --> 00:05:22,230 permite que os individuos para conectarse ao servidor MySQL que é 87 00:05:22,230 --> 00:05:24,310 directamente sobre o aparello CS50. 88 00:05:24,310 --> 00:05:26,980 E nós estamos conectando a unha base de datos que configurar chamado Blog50. 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> Entón imos realmente ir adiante e executar a versión de traballo deste, 91 00:05:37,085 --> 00:05:39,710 só para ter unha idea do que o aplicación que estamos construíndo 92 00:05:39,710 --> 00:05:41,390 parece. 93 00:05:41,390 --> 00:05:46,150 Entón, eu teño unha copia do este Blog50 rematada. 94 00:05:46,150 --> 00:05:51,910 Entón, en realidade, Laravel foi construído en un servidor 95 00:05:51,910 --> 00:05:53,910 que pode realizar directamente a partir da liña de comandos. 96 00:05:53,910 --> 00:05:56,900 Polo tanto, este é semellante ao PSet antes, cando, en realidade, 97 00:05:56,900 --> 00:06:00,580 construír o seu propio servidor en C. Entón, eles teñen un construído en tan 98 00:06:00,580 --> 00:06:04,010 que pode executar as súas aplicacións Laravel directamente desde a liña de comandos. 99 00:06:04,010 --> 00:06:11,650 >> Entón, se nós facemos php artesán servir, este lanzará un servidor de desenvolvemento 100 00:06:11,650 --> 00:06:13,880 na porta 8000. 101 00:06:13,880 --> 00:06:18,250 Entón, se imos a host local 8.000, notarás que, hey. 102 00:06:18,250 --> 00:06:20,800 Temos o noso blog a funcionar. 103 00:06:20,800 --> 00:06:25,090 Así Laravel aquí é xerar a primeira páxina do noso blog. 104 00:06:25,090 --> 00:06:26,350 Aplicación moi sinxelo. 105 00:06:26,350 --> 00:06:28,610 Pero hai un par características moi bacana 106 00:06:28,610 --> 00:06:31,346 que ofrece debaixo do capó. 107 00:06:31,346 --> 00:06:33,680 >> Entón, da aplicación de blog simple. 108 00:06:33,680 --> 00:06:36,430 Se quixésemos crear un post, podemos premer nese botón. 109 00:06:36,430 --> 00:06:40,470 Podemos dicir: "Ei, persoal. 110 00:06:40,470 --> 00:06:44,530 Este é realmente un divertido seminario ", por exemplo. 111 00:06:44,530 --> 00:06:46,560 E escribir algo aquí. 112 00:06:46,560 --> 00:06:48,180 Texto aquí. 113 00:06:48,180 --> 00:06:51,327 Se premer en Enviar, vai entender que o noso novo blog 114 00:06:51,327 --> 00:06:53,410 pos foi engadido á primeira páxina do blog. 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 Se volvemos aquí, vai entender que houbo algúns comentarios xa 117 00:06:59,970 --> 00:07:01,160 no blog. 118 00:07:01,160 --> 00:07:03,630 Entón, se nós rolar para abaixo, vai notar que Jonathan Tan di 119 00:07:03,630 --> 00:07:08,020 que estaba moi intrigado con este post. 120 00:07:08,020 --> 00:07:11,570 >> Entón, nós falaremos sobre como obxecto relacional permite 121 00:07:11,570 --> 00:07:16,668 facer esas relacións en unha forma moi transparente tamén. 122 00:07:16,668 --> 00:07:17,660 Con estilo. 123 00:07:17,660 --> 00:07:20,290 Calquera dúbida sobre a funcionalidade de que imos construír? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 Con estilo. 126 00:07:23,840 --> 00:07:28,170 Entón, imos comezar con certo crear as táboas de base de datos. 127 00:07:28,170 --> 00:07:33,190 >> Entón, recorda que en CS50 Finanzas, vostede montar unha táboa para os usuarios 128 00:07:33,190 --> 00:07:37,100 así como para o stocks na súa carteira. 129 00:07:37,100 --> 00:07:41,040 Entón, como mencionamos anteriormente, o que usamos en Laravel 130 00:07:41,040 --> 00:07:43,090 é algo coñecido como migracións. 131 00:07:43,090 --> 00:07:48,570 Entón, se nós volver ao código de distribución aquí, 132 00:07:48,570 --> 00:07:51,790 o primeiro mando que é útil que Laravel fornece-lle 133 00:07:51,790 --> 00:07:54,240 é esta orde migrar. 134 00:07:54,240 --> 00:07:59,220 Entón, podemos facer php migrar artesán: facer. 135 00:07:59,220 --> 00:08:01,760 Entón, iso nos permite crear unha migración. 136 00:08:01,760 --> 00:08:03,710 >> E entón nós imos querer para crear unha migración 137 00:08:03,710 --> 00:08:07,050 chamado create_posts_table, que vai 138 00:08:07,050 --> 00:08:11,521 estar onde estamos indo estar almacenando os nosos artigos. 139 00:08:11,521 --> 00:08:14,690 E vai notar aquí que é executado a través dun código que, en realidade, 140 00:08:14,690 --> 00:08:17,580 xera un arquivo con un selo de tempo con iso. 141 00:08:17,580 --> 00:08:22,260 Entón, se nós ir e ollar para Banco de Datos, imos entender baixo Migracións 142 00:08:22,260 --> 00:08:24,830 que é creado un arquivo en branco para nós que 143 00:08:24,830 --> 00:08:30,100 ten código cliché co nome que nós indicado, crear postos de mesa. 144 00:08:30,100 --> 00:08:31,670 >> E ten dúas funcións na mesma. 145 00:08:31,670 --> 00:08:40,539 Up é o que queremos para ser executado cando o migración aplícase a base de datos. 146 00:08:40,539 --> 00:08:46,380 E abaixo é o que nós imos facer cando queremos desfacer unha migración. 147 00:08:46,380 --> 00:08:49,890 Entón, aquí imos comezar coa escrita esta migración. 148 00:08:49,890 --> 00:08:55,480 Polo tanto, hai unha clase útil en Laravel chamado esquema. 149 00:08:55,480 --> 00:08:57,910 >> Entón, nós estamos indo a executar Schema :: create. 150 00:08:57,910 --> 00:09:01,080 E nós estamos indo a crear unha táboa chamada mensaxes. 151 00:09:01,080 --> 00:09:05,980 E aquí nós aplicamos isto usando unha función. 152 00:09:05,980 --> 00:09:11,010 E dentro aquí, nós imos realmente especificar o contido da nosa mesa. 153 00:09:11,010 --> 00:09:14,860 Nós imos crear un ID, que é auto-incremento. 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> Ademais, imos para crear un campo que 156 00:09:24,350 --> 00:09:27,060 representa o título do noso blog. 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 Tamén imos crear un campo para almacenar o texto do noso blog. 159 00:09:36,950 --> 00:09:40,600 E, finalmente, imos para almacenar algúns timestamps 160 00:09:40,600 --> 00:09:44,690 para cando o noso post foi creado e cando foi actualizado. 161 00:09:44,690 --> 00:09:46,240 E abaixo, é moi sinxelo. 162 00:09:46,240 --> 00:09:53,974 Todo o que queremos facer é caer a mesa que creamos. 163 00:09:53,974 --> 00:09:54,930 >> Óptimo. 164 00:09:54,930 --> 00:09:55,850 Algunha pregunta? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 Polo tanto, agora se somos adiante e- en realidade, servidor local, 167 00:10:07,110 --> 00:10:09,640 déixeme borrar o que tiñamos anteriormente. 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 Ir Databases. 170 00:10:15,190 --> 00:10:17,640 Vou borrar o que tiñamos anteriormente. 171 00:10:17,640 --> 00:10:22,870 Large iso e crear un novo banco de datos Blog50. 172 00:10:22,870 --> 00:10:24,930 Entón agora o que o máxico parte, dado que nós 173 00:10:24,930 --> 00:10:28,760 Pode aplicar estas migracións directamente á base de datos a través da liña de comandos 174 00:10:28,760 --> 00:10:29,290 ferramenta. 175 00:10:29,290 --> 00:10:35,100 Entón, se nós facemos php artesán migrar, notarás que, hey. 176 00:10:35,100 --> 00:10:38,320 É creada a táboa de migración, que nós imos dar un ollo a un pouco, 177 00:10:38,320 --> 00:10:40,540 e aplícase esta primeira migración. 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> Entón miramos para Blog50, notará que é creado dúas mesas para nós. 180 00:10:48,920 --> 00:10:50,300 A primeira é esta táboa migracións. 181 00:10:50,300 --> 00:10:54,130 Entón, se nós ver iso, vai entender que esta táboa é moi sinxelo. 182 00:10:54,130 --> 00:10:55,490 É só dicir que, hey. 183 00:10:55,490 --> 00:10:58,960 Nós aplicamos esa migración. 184 00:10:58,960 --> 00:11:01,470 Nós volver e ollar nos postos. 185 00:11:01,470 --> 00:11:05,720 Vai notar que a estrutura é o que lle pedira. 186 00:11:05,720 --> 00:11:07,350 Temos un ID propio incremento. 187 00:11:07,350 --> 00:11:10,450 Temos unha cadea para almacenar o título, e un campo de texto 188 00:11:10,450 --> 00:11:11,450 para almacenar o contido. 189 00:11:11,450 --> 00:11:14,040 190 00:11:14,040 --> 00:11:14,706 Óptimo. 191 00:11:14,706 --> 00:11:15,560 Con estilo. 192 00:11:15,560 --> 00:11:21,626 Calquera dúbida sobre migracións traballo, como podemos aplicala las? 193 00:11:21,626 --> 00:11:22,126 Non? 194 00:11:22,126 --> 00:11:23,600 Con estilo. 195 00:11:23,600 --> 00:11:26,630 Entón, agora nós estamos indo a ir adiante e, en realidade, crear o modelo. 196 00:11:26,630 --> 00:11:33,100 Por iso, queremos crear un modelo de mensaxes que almacena unha abstracción de base de datos. 197 00:11:33,100 --> 00:11:41,040 Entón, en vez de facer consultas MySQL directamente, nós imos crear. 198 00:11:41,040 --> 00:11:45,840 Polo tanto, debemos crear un cartafol aquí chamados modelos. 199 00:11:45,840 --> 00:11:48,905 E aquí dentro, nós imos crear un ficheiro chamado post.php. 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> Dentro deste arquivo PHP, imos crear 202 00:11:54,550 --> 00:12:00,590 un posto de clase que se estende elocuente. 203 00:12:00,590 --> 00:12:08,950 Elocuente é o nome da ORM motor que ofrece Laravel. 204 00:12:08,950 --> 00:12:12,799 E, aquí, poderiamos esperar que realmente precisa escribir un código. 205 00:12:12,799 --> 00:12:14,840 Estamos indo para escribir algún funcións auxiliares posteriores. 206 00:12:14,840 --> 00:12:19,420 Pero fóra da caixa, iso xa vai recoñecer o que está na base de datos 207 00:12:19,420 --> 00:12:24,770 e podemos acceder, digamos, o texto do noso post de blog ou o título, 208 00:12:24,770 --> 00:12:29,230 e crear cousas directamente con practicamente ningún código que sexa. 209 00:12:29,230 --> 00:12:31,110 >> Entón, iso é un dos compoñentes máxicos. 210 00:12:31,110 --> 00:12:34,980 E o vento xa que esta clase é máis de pleno dereito, 211 00:12:34,980 --> 00:12:40,480 imos incluír información sobre o que ao cal está relacionado, de xeito que os comentarios. 212 00:12:40,480 --> 00:12:42,310 Tamén crear unha función para que poidamos realmente 213 00:12:42,310 --> 00:12:46,340 obter directamente a URL dunha páxina post. 214 00:12:46,340 --> 00:12:46,840 Con estilo. 215 00:12:46,840 --> 00:12:47,881 Calquera dúbida sobre iso? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 Non. 218 00:12:51,832 --> 00:12:54,100 Con estilo. 219 00:12:54,100 --> 00:12:57,860 >> Entón, agora, xa que temos o noso modelo, Quere crear un controlador que é 220 00:12:57,860 --> 00:13:02,340 capaz de interactuar con estes modelos, e, subsecuentemente, a base de datos. 221 00:13:02,340 --> 00:13:05,540 Entón, se tomamos un ollo BlogController, vai 222 00:13:05,540 --> 00:13:08,490 notar que non hai moi aquí agora. 223 00:13:08,490 --> 00:13:13,220 Todo o que hai é unha función index que xera a páxina principal, 224 00:13:13,220 --> 00:13:18,220 pero sen nada Aínda hai a exhibir. 225 00:13:18,220 --> 00:13:20,560 >> Así, a primeira función que nós estamos indo a crear 226 00:13:20,560 --> 00:13:25,790 é aquel que nos permite para crear un blog. 227 00:13:25,790 --> 00:13:30,540 Entón imos declarar unha nova funcionalidade chamada newPost. 228 00:13:30,540 --> 00:13:36,430 E aquí dentro simplemente, imos para definir o deseño da páxina 229 00:13:36,430 --> 00:13:41,850 para ser unha versión render, se se lembra de CS50, 230 00:13:41,850 --> 00:13:48,020 deste modelo chamado blog.new, que imos crear un pouco. 231 00:13:48,020 --> 00:13:53,170 >> Notará aquí na liña seis que especificamos esa variable, esquema. 232 00:13:53,170 --> 00:13:55,820 E se derme un ollo no cartafol Views, 233 00:13:55,820 --> 00:14:01,640 hai un cartafol Layouts, que inclúe un ficheiro HTML moi básico. 234 00:14:01,640 --> 00:14:04,680 E de nota, notará que temos ese recipiente 235 00:14:04,680 --> 00:14:06,800 aquí que produce contido. 236 00:14:06,800 --> 00:14:09,460 Entón, dentro do noso modelo o que nós imos facer 237 00:14:09,460 --> 00:14:16,180 é crear o que será substituído directamente dentro deste esquema. 238 00:14:16,180 --> 00:14:20,060 >> Entón nós dixemos que queremos renderizar un modelo chamado blog.new. 239 00:14:20,060 --> 00:14:23,790 Pero dentro do Blog, hai aínda non este novo modelo. 240 00:14:23,790 --> 00:14:26,910 Entón imos crear un arquivo chamado new.blade.php. 241 00:14:26,910 --> 00:14:29,860 Isto di que Laravel o ficheiro PHP debe 242 00:14:29,860 --> 00:14:31,720 ser prestado co modelo de motor lámina. 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 Polo tanto, esta é unha forma xusta arquivo simple. 245 00:14:42,630 --> 00:14:46,690 Vai ser a forma pola cal nós realmente engadir nun post de blog. 246 00:14:46,690 --> 00:14:49,220 >> Así, a maxia aquí desde o herdanza é que, hey. 247 00:14:49,220 --> 00:14:52,950 Queremos especificar que o sección, a sección de contido 248 00:14:52,950 --> 00:14:56,640 aquí, que é delineada porsection estop. 249 00:14:56,640 --> 00:15:02,260 Entón, o que hai entre aquí vai ser substituído no esquema mestre. 250 00:15:02,260 --> 00:15:07,000 E aquí o que queremos facer é moi simplemente crear un novo ficheiro HTML. 251 00:15:07,000 --> 00:15:08,690 Nós só engadir un título rápida. 252 00:15:08,690 --> 00:15:09,600 Engadir un post de blog. 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 E dentro del, somos vai crear un formulario. 255 00:15:15,390 --> 00:15:19,197 >> Esta forma terá unha acción. 256 00:15:19,197 --> 00:15:21,780 E iso vai ser algo que substituír máis tarde, 257 00:15:21,780 --> 00:15:24,200 e veremos como enrutamento encaixa aquí. 258 00:15:24,200 --> 00:15:33,600 Pero nós só estamos indo a definir, polo de agora que esta vai para un URL co percorrido 259 00:15:33,600 --> 00:15:34,860 de createPost. 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 E entón iso vai ter método post. 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 Dentro aquí, nós imos ter dous campos. 264 00:15:47,590 --> 00:15:49,170 Div class = "grupo-forma". 265 00:15:49,170 --> 00:15:55,806 >> Utilizamos a biblioteca Bootstrap CSS graciosamente fornecido polo Twitter. 266 00:15:55,806 --> 00:15:57,720 Entón, nós imos crear dous destes. 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 Polo tanto, esta entrada é primeiro será o título. 269 00:16:05,970 --> 00:16:08,437 Nome Entón input = "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 Eu estou indo para engadir un espazo reservado = "Title". 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> E, a continuación, o segundo é vai ser unha área de texto. 276 00:16:26,140 --> 00:16:27,827 Name = "contido". 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 E espazo reservado = "Escriba aquí". 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 Alí imos nós. 282 00:16:43,480 --> 00:16:46,760 Finalmente, imos engadir un botón rápido envío. 283 00:16:46,760 --> 00:16:50,370 Type = "submit" class = "btn btn-fondo". 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 Entón, eses son todos características de Bootstrap así 286 00:16:55,340 --> 00:16:58,510 que este pode ser instalado de forma que é 287 00:16:58,510 --> 00:17:03,730 presa para o usuario, en vez de HTML espido. 288 00:17:03,730 --> 00:17:06,250 >> Entón, definimos o controlador aquí. 289 00:17:06,250 --> 00:17:08,930 Xa definimos unha visión moi sinxelo. 290 00:17:08,930 --> 00:17:12,339 Pero o que falta é do tecido conxuntivo. 291 00:17:12,339 --> 00:17:15,420 Entón, neste momento, Laravel non ten idea de como 292 00:17:15,420 --> 00:17:18,312 imos realmente acceder a este controlador. 293 00:17:18,312 --> 00:17:20,270 Polo tanto, este é definido nun arquivo chamado routes.php. 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 E, neste momento, temos unha ruta. 296 00:17:24,310 --> 00:17:29,060 Que é cando imos para o camiño de casa para o sitio, 297 00:17:29,060 --> 00:17:33,140 que vai procesar o controlador de índice. 298 00:17:33,140 --> 00:17:38,880 Entón, aquí o que necesitamos facer é aplicar unha nova ruta para nós para crear un post. 299 00:17:38,880 --> 00:17:41,910 >> Entón, usamos este método obter, que especifica 300 00:17:41,910 --> 00:17:48,650 que, cando un usuario intenta obter este página-- especificamente 301 00:17:48,650 --> 00:17:52,850 o post cortar novo página-- o que nós imos facer 302 00:17:52,850 --> 00:18:02,060 é usar o controlador chamado BlogController novo post. 303 00:18:02,060 --> 00:18:03,460 O que acabamos de crear. 304 00:18:03,460 --> 00:18:08,090 E entón nós imos Alias ​​como newPost. 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 Nós imos crear outro función nun pouco. 307 00:18:19,850 --> 00:18:23,520 Pero o que está aquí baixo a clave ", como" é o que 308 00:18:23,520 --> 00:18:28,195 podemos substituír dentro nosos modelos da lámina. 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 Entón, por agora, imos en realidade, tamén din ruta. 311 00:18:36,230 --> 00:18:38,380 Entón, nós tamén imos para crear un controlador 312 00:18:38,380 --> 00:18:41,020 para que poidamos crear esas mensaxes. 313 00:18:41,020 --> 00:18:46,940 Polo tanto, se un usuario mensaxes para o post páxina barra nova, o que nós imos facer 314 00:18:46,940 --> 00:18:51,350 é utiliza un controlador que imos crear en breve 315 00:18:51,350 --> 00:18:56,160 chamado BlogController en createPost. 316 00:18:56,160 --> 00:19:01,929 E nós imos facer a réplica con este como createPost. 317 00:19:01,929 --> 00:19:03,380 Con estilo. 318 00:19:03,380 --> 00:19:05,811 >> Algunha pregunta? 319 00:19:05,811 --> 00:19:06,310 Con estilo. 320 00:19:06,310 --> 00:19:09,790 Entón, imos realizar o que temos ata agora. 321 00:19:09,790 --> 00:19:16,930 Entón, se nós facemos php artesán servir, veremos moitos erros. 322 00:19:16,930 --> 00:19:20,385 Polo tanto, parece que temos un erro de sintaxe en rutas liña 27. 323 00:19:20,385 --> 00:19:20,885 Ah. 324 00:19:20,885 --> 00:19:21,718 Falta un punto e coma. 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 Entón, se imos a 8000, vai ver nada aquí aínda. 327 00:19:32,870 --> 00:19:34,740 Polo tanto, esta é a páxina de inicio estándar. 328 00:19:34,740 --> 00:19:37,730 >> Pero se somos para deixar cortar novo, hey. 329 00:19:37,730 --> 00:19:40,425 Vai ser a forma que acabamos de crear. 330 00:19:40,425 --> 00:19:42,550 Neste momento, non temos aplicado a funcionalidade 331 00:19:42,550 --> 00:19:44,060 de cando se prema o botón Enviar. 332 00:19:44,060 --> 00:19:47,110 Entón, se eu premer no Enviar botón, el vai a realizar un erro. 333 00:19:47,110 --> 00:19:49,840 Pero imos ao código que agora, precisamente o que nos 334 00:19:49,840 --> 00:19:54,840 quere facer cando un usuario sostén esta forma. 335 00:19:54,840 --> 00:19:55,770 >> Entón, imos facelo. 336 00:19:55,770 --> 00:19:57,380 Voltar para o ficheiro de controladores. 337 00:19:57,380 --> 00:20:00,180 O que imos facer é aplicar esta nova función 338 00:20:00,180 --> 00:20:04,360 que nos permite crear un post. 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 Declare nova función. 341 00:20:08,990 --> 00:20:11,527 CreatePost función pública. 342 00:20:11,527 --> 00:20:14,610 E esa función será un pouco máis sofisticado que o que 343 00:20:14,610 --> 00:20:15,559 que tiñamos antes. 344 00:20:15,559 --> 00:20:18,350 Pero vai ver aquí que non estamos vai realmente escribir calquera SQL. 345 00:20:18,350 --> 00:20:20,980 O ORM, o Eloquent ORM, permitirá 346 00:20:20,980 --> 00:20:26,400 -Nos a facelo nalgúns formas dun xeito máis elegante. 347 00:20:26,400 --> 00:20:29,140 >> Entón imos crear un novo post. 348 00:20:29,140 --> 00:20:34,120 E aquí estamos instanciar un novo obxecto 349 00:20:34,120 --> 00:20:38,080 a partir do modelo que acabamos creado, o modelo post. 350 00:20:38,080 --> 00:20:44,450 E o que nós imos facer é establecer o atributo título deste usando algo 351 00:20:44,450 --> 00:20:47,380 que comeza a partir do servidor. 352 00:20:47,380 --> 00:20:52,060 Polo tanto, este é semellante ao que que tiñamos antes en CS50 Finanzas 353 00:20:52,060 --> 00:20:57,750 onde queremos facer, usando o Super Global Post buscando título. 354 00:20:57,750 --> 00:21:01,600 >> Entón Laravel ofrece algunhas saneamento e outros enfeites usando esa función auxiliar. 355 00:21:01,600 --> 00:21:07,610 Entón, nós preferimos usar isto en vez desta forma bruta moi básico de PHP. 356 00:21:07,610 --> 00:21:17,430 E entón o que imos facer é definir o contido do mesmo para o contido de entrada. 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 En realidade, estamos indo a embrulhar isto nunha función útil 359 00:21:22,720 --> 00:21:31,820 PHP que ofrece chamado nl2br, que Acontece novas liñas, NLS, en BRS, pausas, 360 00:21:31,820 --> 00:21:35,822 para que poidamos realmente ter diferentes puntos dentro del. 361 00:21:35,822 --> 00:21:38,030 E, finalmente, o que imos que facer é gardar este post. 362 00:21:38,030 --> 00:21:41,686 Entón, nós chamamos a función gardar para este modelo. 363 00:21:41,686 --> 00:21:43,800 Imos salvar o post. 364 00:21:43,800 --> 00:21:49,970 E, finalmente, o que nós imos facer é redireccionar ao usuario especificamente 365 00:21:49,970 --> 00:21:55,060 para ruta que imos crear en breve, alias, viewPost. 366 00:21:55,060 --> 00:22:00,435 E nós estamos indo a pasar nos argumentos id, sendo a id deste novo post. 367 00:22:00,435 --> 00:22:04,280 368 00:22:04,280 --> 00:22:05,640 >> Óptimo. 369 00:22:05,640 --> 00:22:09,090 Entón, agora, se realmente ir e executar este. 370 00:22:09,090 --> 00:22:11,370 Nós imos engadir un novo post. 371 00:22:11,370 --> 00:22:15,930 Imos dicir que este é o seminario 50. 372 00:22:15,930 --> 00:22:17,620 E dicir, con certeza. 373 00:22:17,620 --> 00:22:18,240 ADSL. 374 00:22:18,240 --> 00:22:18,740 Tanto ten. 375 00:22:18,740 --> 00:22:20,320 Algún tipo de contido. 376 00:22:20,320 --> 00:22:21,180 E presenta-lo. 377 00:22:21,180 --> 00:22:23,850 E nós imos entender que, hey. rutas non definido. 378 00:22:23,850 --> 00:22:32,340 Pero se derme un ollo e phpMyAdmin buscar ou non a nosa función 379 00:22:32,340 --> 00:22:34,370 fixo nada. 380 00:22:34,370 --> 00:22:36,670 Olle para os artigos Blog50. 381 00:22:36,670 --> 00:22:37,720 Imos entender que, hey. 382 00:22:37,720 --> 00:22:43,530 En realidade, nós só crear este blog enviar coa data e hora, conforme especificado. 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> Entón agora imos voltar e realmente crear estoutra función no noso controlador, 385 00:22:51,630 --> 00:22:54,790 especialmente o controlador viewPost. 386 00:22:54,790 --> 00:23:00,290 ViewPost función Entón público. 387 00:23:00,290 --> 00:23:04,070 Entón, aquí o que imos facer, en vez de ter parénteses baleiros, 388 00:23:04,070 --> 00:23:08,800 imos querer pasar o ID de o post que estamos creando. 389 00:23:08,800 --> 00:23:12,800 E a partir de aquí que nós imos facer é realmente consultar a base de datos para el. 390 00:23:12,800 --> 00:23:15,140 >> Entón, se nós non publicar, hai unha función chamada 391 00:23:15,140 --> 00:23:18,860 Atopa permítenos consultalo lo por ID. 392 00:23:18,860 --> 00:23:22,110 En concreto, en realidade, nós imos usar unha versión alternativa deste chamado 393 00:23:22,110 --> 00:23:27,880 Procure ou Fail, o que nos permite para saír fóra desta función, 394 00:23:27,880 --> 00:23:34,700 lanzar unha excepción se o ID pasamos en non existe. 395 00:23:34,700 --> 00:23:37,500 E entón nós imos facer algo semellante ao que fixemos anteriormente 396 00:23:37,500 --> 00:23:41,100 onde imos definir o contido desta páxina para ser 397 00:23:41,100 --> 00:23:47,950 a versión procesada deste novo modo de visualización que imos crear, blog.view. 398 00:23:47,950 --> 00:23:51,030 >> E nós imos pasar ele-- Así como no CS50 renda 399 00:23:51,030 --> 00:23:56,645 function-- un dicionario de variables. 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 As claves desta matriz asociativa fan a variables dentro do modelo. 402 00:24:04,620 --> 00:24:06,830 Entón, nós estamos indo facer post post. 403 00:24:06,830 --> 00:24:12,474 Entón pasar indirectamente o cargo que temos consultado a partir da base de datos. . 404 00:24:12,474 --> 00:24:14,390 Agora, o que nós imos facer é crear esa visión 405 00:24:14,390 --> 00:24:17,560 para que poidamos realmente ver os artigos do blog que temos construído. 406 00:24:17,560 --> 00:24:20,280 >> Entón imos crear un arquivo chamado view.blade.php. 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 Entón, dentro dese modelo, o que nós imos facer 409 00:24:29,640 --> 00:24:39,700 é montar unha páxina simple que permítenos mostrar o contido. 410 00:24:39,700 --> 00:24:44,280 Entón nós facemos parte, que é antes de contido. 411 00:24:44,280 --> 00:24:46,800 Pare. 412 00:24:46,800 --> 00:24:53,920 E o que imos o que facer dentro aquí é 413 00:24:53,920 --> 00:24:56,930 escribir algún HTML para exhibir esta páxina. 414 00:24:56,930 --> 00:25:03,590 >> Entón, nós estamos indo a envolve-lo con unha fantasía novo elemento HTML5 chamado artigo. 415 00:25:03,590 --> 00:25:05,790 E, aquí, nós imos ter unha cabeceira onde 416 00:25:05,790 --> 00:25:12,190 imos simplemente ter un h1, que inclúe o título do post. 417 00:25:12,190 --> 00:25:17,120 Entón, aquí, se miramos para este notación chaveta dobre, 418 00:25:17,120 --> 00:25:21,690 iso vai facer esencialmente PHP echo título do post. 419 00:25:21,690 --> 00:25:25,630 Polo tanto, é unha abreviación útil Laravel que nos ofrece. 420 00:25:25,630 --> 00:25:31,070 Entón, nós estamos indo a usar esta notación en vez diso. 421 00:25:31,070 --> 00:25:40,220 >> E aquí, nós imos tamén imprimir o contido do mesmo. 422 00:25:40,220 --> 00:25:43,480 E, aquí, nós imos facer contido do post. 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 E, na parte inferior do que somos vai facer é crear un pé. 425 00:25:50,660 --> 00:25:57,690 E no rodapé, imos primeira exhibición cando este foi publicado. 426 00:25:57,690 --> 00:26:01,320 Polo tanto, este foi publicado en, creada no. 427 00:26:01,320 --> 00:26:07,996 >> E Laravel usa un moi bo biblioteca data chamado carbono. 428 00:26:07,996 --> 00:26:11,120 Así, podemos realmente facer algo chamado difforHumans, o que viu anteriormente. 429 00:26:11,120 --> 00:26:14,360 Cando postamos. que vai dicir: tipo, cinco segundos atrás. 430 00:26:14,360 --> 00:26:16,860 Polo tanto, este é un moi bo función de Laravel. 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 E, finalmente, imos para pechar esta rodapé. 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> Polo tanto, agora volver Páxina principal imos 435 00:26:31,450 --> 00:26:34,490 para ver nada aquí aínda porque non ter codificado a páxina principal. 436 00:26:34,490 --> 00:26:40,962 Pero se somos para publicar unha barra, imos ver unha excepción. 437 00:26:40,962 --> 00:26:42,670 Alguén sabe por que vemos unha excepción? 438 00:26:42,670 --> 00:26:44,516 O que estamos perdendo? 439 00:26:44,516 --> 00:26:45,290 Calquera ideas? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 Entón, o que nós facemos máis cedo para nós, en realidade, 442 00:26:49,790 --> 00:26:52,285 para definir como nós conseguimos controladores en particular? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> COLUMNA 1: A ruta? 445 00:26:55,770 --> 00:26:56,519 ERIC Ouyang: Yeah. 446 00:26:56,519 --> 00:26:58,070 Polo tanto, aínda temos que establecer o percorrido. 447 00:26:58,070 --> 00:26:59,794 Entón imos voltar aquí para routes.php. 448 00:26:59,794 --> 00:27:01,710 Notarás que nós realmente non teño definido 449 00:27:01,710 --> 00:27:05,010 como imos chegar a este controlador. 450 00:27:05,010 --> 00:27:06,780 Entón, agora imos establecer esa ruta. 451 00:27:06,780 --> 00:27:09,280 É moi sinxelo, semellante ao que fixemos anteriormente. 452 00:27:09,280 --> 00:27:13,910 Pero o que nós estamos indo a notar aquí é que nós imos ter un espazo reservado. 453 00:27:13,910 --> 00:27:18,730 >> Entón, se nós facemos route.get post barra ID. 454 00:27:18,730 --> 00:27:24,290 Entón ID agora é o que vai ser pasado para o controlador. 455 00:27:24,290 --> 00:27:27,820 Isto vai utilizar o controlador que acabamos 456 00:27:27,820 --> 00:27:33,560 creado, en BlogController viewPost. 457 00:27:33,560 --> 00:27:36,420 E nós imos de feito esta como viewPost. 458 00:27:36,420 --> 00:27:46,544 459 00:27:46,544 --> 00:27:47,490 Óptimo. 460 00:27:47,490 --> 00:27:49,470 Entón agora imos crear esta ruta. 461 00:27:49,470 --> 00:27:52,100 >> Polo tanto, agora imos aquí e actualiza esta páxina, 462 00:27:52,100 --> 00:27:54,410 nós, de feito, teñen o noso novo blog. 463 00:27:54,410 --> 00:27:57,710 Entón é iso que creamos máis cedo. 464 00:27:57,710 --> 00:28:01,320 Mesma páxina simple, pero amosa o blog que acabamos de crear. 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 Con estilo. 467 00:28:04,760 --> 00:28:08,880 E se nós realmente pasar por todo proceso de creación dun novo post, 468 00:28:08,880 --> 00:28:11,700 imos entender que todo redirecciona correctamente. 469 00:28:11,700 --> 00:28:12,950 Se eu digo: "Ola. 470 00:28:12,950 --> 00:28:15,710 Estou Jonathan Tan. " 471 00:28:15,710 --> 00:28:18,550 Diga: "Este é o meu blog." 472 00:28:18,550 --> 00:28:22,830 E presenta-lo, iso vai crear este novo post con ID 2, 473 00:28:22,830 --> 00:28:28,920 que incrementos do que tiñamos anteriormente e presenta-lo correctamente. 474 00:28:28,920 --> 00:28:30,760 Impresionante. 475 00:28:30,760 --> 00:28:32,930 >> Algunha pregunta? 476 00:28:32,930 --> 00:28:33,430 Si? 477 00:28:33,430 --> 00:28:36,537 >> COLUMNA 2: Será que Laravel handle sanitização e todo para ti? 478 00:28:36,537 --> 00:28:37,245 ERIC Ouyang: Si. 479 00:28:37,245 --> 00:28:42,990 Entón, cando vimos antes, cando fixemos entrada colon colon obter, 480 00:28:42,990 --> 00:28:47,720 que sanitates calquera SQL inxeccións e outros enfeites 481 00:28:47,720 --> 00:28:51,660 que pode querer executar se somos un usuario malintencionado do sitio. 482 00:28:51,660 --> 00:28:54,115 Entón Laravel manexa unha morea de que, por tras dos bastidores. 483 00:28:54,115 --> 00:28:57,030 Boa pregunta. 484 00:28:57,030 --> 00:29:00,390 >> Entón, imos dar un ollo á páxina principal. 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 Entón, se nós primeiro volver ao controlador para a páxina principal, 487 00:29:06,790 --> 00:29:08,740 notarás que el non fai moito aquí. 488 00:29:08,740 --> 00:29:11,620 Vai notar que non estamos pasando a este controlador 489 00:29:11,620 --> 00:29:13,830 nada especialmente útil. 490 00:29:13,830 --> 00:29:16,660 É só este ficheiro de índice. 491 00:29:16,660 --> 00:29:18,770 >> Entón, imos pasar este algo útil. 492 00:29:18,770 --> 00:29:21,450 E, especialmente, estamos vai pasar nos postos. 493 00:29:21,450 --> 00:29:28,740 E Laravel permítenos facer pos todo, o que 494 00:29:28,740 --> 00:29:30,625 permitiranos obter todas as mensaxes. 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 Agora, se volver index.php, vai ver, hey. 497 00:29:35,730 --> 00:29:37,060 Nada aquí aínda. 498 00:29:37,060 --> 00:29:41,290 Pero o que queremos facer aquí é, en realidade, iterado, 499 00:29:41,290 --> 00:29:46,420 facer un loop foreach sobre os lugares que nos permite imprimir as mensaxes. 500 00:29:46,420 --> 00:29:53,180 >> Así como postos foreach post, o que queremos facer 501 00:29:53,180 --> 00:29:57,252 é imprimir o contido do post. 502 00:29:57,252 --> 00:30:00,210 Pero unha cousa que vai notar é que nós realmente escribiu a maior parte dese código 503 00:30:00,210 --> 00:30:01,370 xa, en view.blade.php. 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 Entón, o que nós imos facer é, en realidade, usar un recurso útil agradable de Lâmina 506 00:30:08,640 --> 00:30:11,300 e fatorar o código común. 507 00:30:11,300 --> 00:30:12,570 Entón imos aquí. 508 00:30:12,570 --> 00:30:16,210 >> Nós imos levar este contido aquí, eo que nós imos facer 509 00:30:16,210 --> 00:30:18,170 é crear un novo cartafol. 510 00:30:18,170 --> 00:30:20,364 Imos chamalo só Partials. 511 00:30:20,364 --> 00:30:22,530 E, aquí, nós imos para crear unha post.blade.php. 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 Entón, aquí, nós consignado apunta o camiño para que queremos amosar esas mensaxes. 514 00:30:33,100 --> 00:30:38,690 E aquí o que imos facer no canto de realmente ter que HTML directamente, 515 00:30:38,690 --> 00:30:41,530 imos usar esta directiva chamado inclúen blog.partials.post. 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> E o que nós imos facer aquí é pasar no post da páxina. 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 Polo tanto, agora volver aquí, nós imos notar que a funcionalidade aínda é 520 00:31:01,050 --> 00:31:01,550 o mesmo. 521 00:31:01,550 --> 00:31:05,140 Pero agora temos este fatoramos código, este HTML. 522 00:31:05,140 --> 00:31:07,070 Así, podemos usalo en Index. 523 00:31:07,070 --> 00:31:09,090 Entón, aquí, iso é moi sinxelo. 524 00:31:09,090 --> 00:31:17,870 Todo o que facemos é incluír blog.partials.post e array. 525 00:31:17,870 --> 00:31:20,845 E nalgún lugar para antes, o que facemos post post. 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> Polo tanto, agora se volver para o páxina principal, veremos que, hey. 528 00:31:28,182 --> 00:31:30,515 Temos unha lista de todos os artigos que tiñamos antes. 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 Podemos querer engadir un pouco de "se" condicións e as condicións "senón" 531 00:31:37,700 --> 00:31:39,979 de xeito que se non temos algo no blog, 532 00:31:39,979 --> 00:31:41,520 queremos mostrar algo útil. 533 00:31:41,520 --> 00:31:42,570 Como, hey. 534 00:31:42,570 --> 00:31:44,340 Non hai contido aínda no blog. 535 00:31:44,340 --> 00:31:47,670 E se vostedes realmente ollar para o código de distribución no GitHub, 536 00:31:47,670 --> 00:31:50,100 verás un exemplo de como podemos facelo. 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> Con estilo. 539 00:31:54,110 --> 00:31:54,890 Algunha pregunta? 540 00:31:54,890 --> 00:31:55,510 Si. 541 00:31:55,510 --> 00:31:57,468 >> COLUMNA 2: Eu creo que só unha cuestión fundamental. 542 00:31:57,468 --> 00:31:59,480 De volta á ruta. 543 00:31:59,480 --> 00:32:00,230 ERIC Ouyang: Yeah. 544 00:32:00,230 --> 00:32:01,935 Se derme un ollo rutas. 545 00:32:01,935 --> 00:32:06,018 >> COLUMNA 2: Onde é que a uses.blogcontroller a crear post, 546 00:32:06,018 --> 00:32:07,560 o que iso nos dirixir para? 547 00:32:07,560 --> 00:32:08,310 ERIC Ouyang: Yeah. 548 00:32:08,310 --> 00:32:08,550 Si. 549 00:32:08,550 --> 00:32:09,716 >> COLUMNA 2: Ou o que é isso-- 550 00:32:09,716 --> 00:32:12,620 ERIC Ouyang: Entón, bótalle un ollo, din por exemplo, esta ruta ben aquí. 551 00:32:12,620 --> 00:32:17,190 A primeira parte é o real URL que o usuario vai para. 552 00:32:17,190 --> 00:32:19,930 E esa matriz aquí, matriz asociativa, define 553 00:32:19,930 --> 00:32:24,520 como queremos ter a acto aplicación en resposta a el. 554 00:32:24,520 --> 00:32:29,090 Entón usa é o controlador, a función que nos 555 00:32:29,090 --> 00:32:31,610 quere chamar cando un usuario vai para este URL. 556 00:32:31,610 --> 00:32:35,190 Entón viewPost aquí era un función que definimos no interior 557 00:32:35,190 --> 00:32:36,100 de BlogController-- 558 00:32:36,100 --> 00:32:37,160 >> COLUMNA 2: Entendo. 559 00:32:37,160 --> 00:32:39,368 >> ERIC Ouyang: -Só que nós Pode realmente facer un punto de vista, 560 00:32:39,368 --> 00:32:42,590 realizar algúns cálculos, interactuar co banco de datos SQL. 561 00:32:42,590 --> 00:32:43,560 >> COLUMNA 2: Aceptar. 562 00:32:43,560 --> 00:32:46,960 >> ERIC Ouyang: E ​​despois o outro parte ", como" é un apelido que usamos. 563 00:32:46,960 --> 00:32:50,714 Entón, se nós entender cando creamos o formulario, 564 00:32:50,714 --> 00:32:52,380 notarás que URL :: routecreatePost. 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 Entón, el substitúe na real URL para que non son difíciles 567 00:32:58,330 --> 00:33:02,940 codificación destes en para que poidamos cambia-lo unha vez máis, dicir se quería cambiar o nome. 568 00:33:02,940 --> 00:33:06,055 No canto de barra de post novo, queremos facer, como, p 569 00:33:06,055 --> 00:33:09,490 cortar novo só para limpar nosas URLs algo. 570 00:33:09,490 --> 00:33:14,740 Queremos mudalo nun lugar bastante que en todos os distintos ficheiros. 571 00:33:14,740 --> 00:33:15,451 >> Con estilo. 572 00:33:15,451 --> 00:33:15,950 Iso é bo. 573 00:33:15,950 --> 00:33:20,070 Polo tanto, agora temos un moi blog plataforma básica. 574 00:33:20,070 --> 00:33:24,260 Nós probablemente vai querer engadir un botón para que podemos realmente crear novos postos. 575 00:33:24,260 --> 00:33:27,850 Entón, se imos dar un ollo no Máster Esquema, 576 00:33:27,850 --> 00:33:31,280 temos unha sección chamada Header Dereito que acabamos de definir-se na parte superior. 577 00:33:31,280 --> 00:33:34,820 Así, podemos engadir botóns para a parte superior da cabeceira. 578 00:33:34,820 --> 00:33:43,950 >> Entón, se imos a index.blade.php, en realidade, facer é establecer o que pasa aquí dentro. 579 00:33:43,950 --> 00:33:46,970 Polo tanto, esta sección Cabeceira dereito, o que nós imos facer 580 00:33:46,970 --> 00:33:55,240 é engadir un botón para ir ao URL definida pola ruta novo post. 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 Só para limpa-lo e torná- -la fermosa e todos Bootstrap, 583 00:34:01,660 --> 00:34:04,630 imos facer este botón estándar. 584 00:34:04,630 --> 00:34:07,794 Nós só facelo grande para divertirse. 585 00:34:07,794 --> 00:34:09,969 >> E dentro dela, poderiamos poñer algún texto. 586 00:34:09,969 --> 00:34:14,030 Pero o que Bootstrap proporciona é glyphicons. 587 00:34:14,030 --> 00:34:17,840 Así, podemos realmente engadir en que bo lapis que vimos anteriormente. 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-lápis. 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 Entón, iso vai permitir poñer nun icono no canto de texto. 593 00:34:35,340 --> 00:34:38,960 Agora, se non parar, este definirá nesta sección. 594 00:34:38,960 --> 00:34:39,460 E, hey. 595 00:34:39,460 --> 00:34:45,000 Temos un botón agradable que nos une directamente ao engadir unha páxina de blog. 596 00:34:45,000 --> 00:34:46,659 >> Polo tanto, temos un blog moi sinxelo. 597 00:34:46,659 --> 00:34:49,710 Podemos engadir cousas a el. 598 00:34:49,710 --> 00:34:53,650 Pero o que nos esperan de blogs está comentando. 599 00:34:53,650 --> 00:34:57,340 Entón é moi importante para nós ter, dicir que, se alguén visita unha páxina web 600 00:34:57,340 --> 00:35:00,620 e realmente gusta do post que poden se involucrar en discusión 601 00:35:00,620 --> 00:35:03,100 con outras persoas que visitan a páxina. 602 00:35:03,100 --> 00:35:07,050 Entón, nós estamos indo a ir e crear un nova táboa de base de datos e un novo modelo 603 00:35:07,050 --> 00:35:12,220 para que poidamos asociar comenta con mensaxes. 604 00:35:12,220 --> 00:35:17,370 >> Entón o primeiro paso, como antes, é que necesitamos para realizar unha migración. 605 00:35:17,370 --> 00:35:21,982 Así como antes, o que facemos php artesán migre: facer. 606 00:35:21,982 --> 00:35:24,440 E nós estamos indo a crear un chamado create_comments_table. 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 Isto creará un ficheiro que ten a nosa nova migración. 609 00:35:36,080 --> 00:35:40,170 E nós imos, como antes, establecer unha nova táboa. 610 00:35:40,170 --> 00:35:42,773 Entón Schema :: crear un táboa chamada comentarios. 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 Esta función aquí. 613 00:35:48,430 --> 00:35:51,620 E dentro deste cadro que nós imos facer é en primeiro lugar, 614 00:35:51,620 --> 00:35:54,260 como antes, asignar un ID. 615 00:35:54,260 --> 00:35:56,552 Incrementa ID. 616 00:35:56,552 --> 00:36:05,440 >> Estamos indo para permitir que os usuarios a asociar seu nome cun comentario particular. 617 00:36:05,440 --> 00:36:10,080 Nós imos ter un contido que vai xunto con iso, o contido do texto. 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 E aquí o que nós estamos indo a facer é algo diferente. 620 00:36:15,910 --> 00:36:23,620 Nós imos crear un enteiro que se chama post_id que 621 00:36:23,620 --> 00:36:32,100 significará que o post un comentario especial vai con. 622 00:36:32,100 --> 00:36:35,410 >> Ademais, nós estamos indo realmente para definir unha restrición de clave estranxeira sobre o asunto. 623 00:36:35,410 --> 00:36:37,750 Entón, MySQL ha impoñer iso. 624 00:36:37,750 --> 00:36:39,840 Non estamos tentando asignar o número de comentario 625 00:36:39,840 --> 00:36:44,440 5 para publicar 5.000 se non temos tivo 5.000 artigos sobre iso. 626 00:36:44,440 --> 00:36:50,240 Entón, o que facemos aquí, facemos post_id estranxeira 627 00:36:50,240 --> 00:37:02,046 vai ser asociado con o campo ID dos postos da táboa. 628 00:37:02,046 --> 00:37:05,900 E nós imos realmente facer algo outra cousa útil, é onDelete. 629 00:37:05,900 --> 00:37:11,180 >> Entón, se nós borrar algúns publicar a partir da base de datos, 630 00:37:11,180 --> 00:37:15,507 que queremos fervenza do exclúe a comentarios tamén. 631 00:37:15,507 --> 00:37:18,090 Porque non é moi útil para nós ter comentarios sobre os artigos 632 00:37:18,090 --> 00:37:19,900 que non existen. 633 00:37:19,900 --> 00:37:23,764 E, finalmente, como antes, estamos definirá selos de tempo sobre este asunto. 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 E, como antes, nós imos teñen a migración inversa ser 636 00:37:33,510 --> 00:37:37,920 eliminando a táboa comentarios. 637 00:37:37,920 --> 00:37:40,070 >> Polo tanto, agora volvemos para aquí, nós imos 638 00:37:40,070 --> 00:37:43,110 para realizar esta migración, artesán migrar. 639 00:37:43,110 --> 00:37:46,400 E agora é aplicada esta migración que acabamos de crear. 640 00:37:46,400 --> 00:37:50,080 Entón, se nós unha mirada a phpMyAdmin, o que facemos, de feito, agora 641 00:37:50,080 --> 00:37:53,210 ter unha táboa de comentarios que ten o estrutura que acabamos especificado. 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 Así como antes, estamos vai crear un novo modelo 644 00:37:59,610 --> 00:38:04,450 abstraerse a táboa de SQL que acabamos de crear. 645 00:38:04,450 --> 00:38:05,450 >> Entón, imos engadir un novo ficheiro. 646 00:38:05,450 --> 00:38:06,908 Imos chamalo de comment.php. 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 E iso é realmente vai ser moi simple, con un lixeiro cambio 649 00:38:15,490 --> 00:38:17,520 do que tiñamos antes. 650 00:38:17,520 --> 00:38:22,790 Así, a clase Comentario estende elocuente. 651 00:38:22,790 --> 00:38:25,930 E o que imos facer aquí é definir 652 00:38:25,930 --> 00:38:31,360 unha función que é a relación con outros modelos. 653 00:38:31,360 --> 00:38:39,250 Entón, nós imos ter unha función de post aquí que volve esta relación. 654 00:38:39,250 --> 00:38:43,330 Entón, nós estamos especificando que isto pertence a publicar, 655 00:38:43,330 --> 00:38:49,200 dicindo que hai un posto que este comentario pertence. 656 00:38:49,200 --> 00:38:53,917 >> Esta ten que ser efectivamente P maiúsculo para o modelo. 657 00:38:53,917 --> 00:38:56,500 E agora só o outro aleta banda, temos que dicir que, hey. 658 00:38:56,500 --> 00:38:58,160 Anotacións ten comentarios. 659 00:38:58,160 --> 00:39:03,030 Entón, o que nós imos facer é definir comentario función pública. 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 E aquí é devolto Isto ten moitas Comment. 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 Entón agora Magic cando temos un post, podemos obter os comentarios de atributos 664 00:39:22,010 --> 00:39:25,615 e que vai enche-lo co información da base de datos. 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> Entón imos realmente pasar e engadir un novo recurso para o noso arquivo de visión 667 00:39:38,220 --> 00:39:43,600 para que poidamos tanto exhibición e crear comentarios. 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 Entón, imos establecer unha nova sección. 670 00:39:56,865 --> 00:39:59,890 Nós só separa-lo cunha regra horizontal. 671 00:39:59,890 --> 00:40:04,065 Sección id = "comentarios". 672 00:40:04,065 --> 00:40:06,990 O que nós imos facer aquí é, como antes, 673 00:40:06,990 --> 00:40:09,880 percorrer todos os comentarios. 674 00:40:09,880 --> 00:40:12,960 Entón, en realidade, como facemos isto é, como xa referín, bastante máxico. 675 00:40:12,960 --> 00:40:14,440 >> Facemos escribir comentarios. 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 E entón podemos facelo para cada loop sobre cada un dos comentarios. 678 00:40:22,710 --> 00:40:25,740 E o que nós estamos indo a facer é clase div comentario, 679 00:40:25,740 --> 00:40:29,240 e nós estamos indo para realmente imprimir este comentario. 680 00:40:29,240 --> 00:40:34,150 Entón amosar que hey, comentar nome-- a persoa 681 00:40:34,150 --> 00:40:38,080 que publicou este comment-- di dot dot dot. 682 00:40:38,080 --> 00:40:41,240 Imos poñer isto nun bloque Cita, só para facela agradable. 683 00:40:41,240 --> 00:40:46,470 E logo comentar bloque de cita de contido. 684 00:40:46,470 --> 00:40:49,790 685 00:40:49,790 --> 00:40:50,892 E foreach. 686 00:40:50,892 --> 00:40:53,100 Polo tanto, agora é que isto vai facer un loop a través de todas as opinións 687 00:40:53,100 --> 00:40:56,500 que está asociada con cada un dos postos 688 00:40:56,500 --> 00:41:00,960 e amosar cada un destes comentarios. 689 00:41:00,960 --> 00:41:05,120 Eu estou indo para engadir outra sección abaixo aquí, o que nos permite engadir un comentario. 690 00:41:05,120 --> 00:41:07,400 Clase Entón h3. 691 00:41:07,400 --> 00:41:09,580 Engade un título aquí. 692 00:41:09,580 --> 00:41:10,934 Engadir un comentario. 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 E nós imos establecer unha nova forma. 695 00:41:15,700 --> 00:41:18,730 >> Así como antes, estamos fará acción de formulario. 696 00:41:18,730 --> 00:41:22,740 E aquí, a nova acción é que estamos indo para definir un novo controlador que 697 00:41:22,740 --> 00:41:26,770 permítenos responder para publicar solicitudes de creación de comentarios. 698 00:41:26,770 --> 00:41:33,365 Entón URL :: ruta createComment. 699 00:41:33,365 --> 00:41:37,730 Vou pasar o parámetro aquí. 700 00:41:37,730 --> 00:41:40,380 A ID do post que estamos creando comentar. 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 E, a continuación, o método do presente forma será post. 703 00:41:50,280 --> 00:41:57,240 >> Agora imos engadir en a dous campos, grupo formulario. 704 00:41:57,240 --> 00:42:04,670 Esta será unha entrada co nome "nome" e class = "-control forma", 705 00:42:04,670 --> 00:42:14,250 type = "text", e co espazo reservado = "O seu nome". 706 00:42:14,250 --> 00:42:19,380 Tamén imos definir outro campo de formulario, que 707 00:42:19,380 --> 00:42:22,970 vai ser un texto área como tiñamos antes. 708 00:42:22,970 --> 00:42:25,480 Así como antes, chamalo de contido. 709 00:42:25,480 --> 00:42:31,160 Class = "-control forma." 710 00:42:31,160 --> 00:42:41,660 Espazo reservado = "Escriba aquí." 711 00:42:41,660 --> 00:42:44,100 >> E só así que nós Realmente pode envialo, 712 00:42:44,100 --> 00:42:55,740 presentar tipo e class = "btn btn-primario." 713 00:42:55,740 --> 00:42:57,005 Peche o formulario. 714 00:42:57,005 --> 00:42:59,010 Peche esa acción. 715 00:42:59,010 --> 00:43:06,580 Entón, agora, se actualiza esta páxina onde temos, digamos, un post especial. 716 00:43:06,580 --> 00:43:10,310 Temos que reiniciar o servidor. 717 00:43:10,310 --> 00:43:12,340 PHP artesán servir. 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 Reinicie iso. 720 00:43:18,334 --> 00:43:19,500 Debemos establecer o percorrido. 721 00:43:19,500 --> 00:43:25,090 Pero, por agora, imos aproveitar esta a fóra, para que poidamos realmente amosar-lle 722 00:43:25,090 --> 00:43:28,750 o que a páxina parece, e, a continuación, imos realmente crear esa ruta. 723 00:43:28,750 --> 00:43:29,250 Entón, hey. 724 00:43:29,250 --> 00:43:37,080 Temos esta nova forma aquí para que poidamos crear comentarios. 725 00:43:37,080 --> 00:43:39,950 Entón imos realmente definir un función dentro do controlador 726 00:43:39,950 --> 00:43:43,020 para que poidamos engadir comentarios. 727 00:43:43,020 --> 00:43:43,650 Imos volver. 728 00:43:43,650 --> 00:43:48,420 E dentro blogcontroller.php, o que nós imos facer 729 00:43:48,420 --> 00:43:51,620 é crear unha nova función chamado crear comentario. 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> CreateComment función pública. 732 00:43:57,040 --> 00:44:00,130 Isto vai ter un único parámetro, o ID dos postos 733 00:44:00,130 --> 00:44:02,280 que estamos comentando. 734 00:44:02,280 --> 00:44:04,790 E, como antes, estamos vai pegar o primeiro post. 735 00:44:04,790 --> 00:44:10,790 Entón publicar, id findOrfail. 736 00:44:10,790 --> 00:44:15,020 Despois, imos para crear un novo comentario. 737 00:44:15,020 --> 00:44:18,880 Entón comentar = new comment. 738 00:44:18,880 --> 00:44:26,820 Comentario name = Input :: get nome. 739 00:44:26,820 --> 00:44:39,420 Contido Comment = a mesma liña nova en intervalos de entrada :: obter contido. 740 00:44:39,420 --> 00:44:43,460 >> E, finalmente, teremos que asociar este comentario co post. 741 00:44:43,460 --> 00:44:47,230 Entón, nós estamos indo a usar esta función, comentarios, 742 00:44:47,230 --> 00:44:50,260 que nos permite aforrar esta relación. 743 00:44:50,260 --> 00:44:54,780 Entón agora este comentario terá automaticamente o ID post. 744 00:44:54,780 --> 00:44:57,640 Tamén pode configurar-lo man, pero esta é 745 00:44:57,640 --> 00:45:02,490 máis fácil de ler, tanto como a función vai. 746 00:45:02,490 --> 00:45:05,860 E despois nós realizamos tanto, o que queremos facer 747 00:45:05,860 --> 00:45:10,840 é redireccionar ao usuario para o ruta especificada por viewPost 748 00:45:10,840 --> 00:45:16,010 coa matriz co parámetro da ID post. 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> E agora, de xeito que este, de feito, funcións, necesitamos definir esta ruta. 751 00:45:24,660 --> 00:45:27,126 Route :: post. 752 00:45:27,126 --> 00:45:32,800 E agora nós imos chamar ese pos cortar ID barra comentario. 753 00:45:32,800 --> 00:45:36,725 Matriz usa a nova función que acabamos 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 como createComment. 757 00:45:44,770 --> 00:45:47,430 758 00:45:47,430 --> 00:45:50,120 Óptimo. 759 00:45:50,120 --> 00:45:56,150 >> Entón, agora espero que se actualiza esta páxina e engadir nun comentario, digamos, David Malan. 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 "Esperamos que isto funciona". 762 00:46:03,920 --> 00:46:05,216 Enviar. 763 00:46:05,216 --> 00:46:09,050 Nós, de feito, ter un comentar este post. 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 Con estilo. 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 Polo tanto, agora temos un moi post funcional. 768 00:46:21,430 --> 00:46:23,180 Nós só estamos indo a engadir un par de axustes de xeito 769 00:46:23,180 --> 00:46:29,090 que temos un pouco máis útil información sobre estas mensaxes. 770 00:46:29,090 --> 00:46:32,780 >> Entón, se nós volver ao primeira páxina, non temos sentido 771 00:46:32,780 --> 00:46:38,790 de cantos comentarios son en cada unha destas mensaxes. 772 00:46:38,790 --> 00:46:41,340 Entón, o que nós estamos indo realmente que facer é, dentro do noso modelo, 773 00:46:41,340 --> 00:46:51,250 definir unha función auxiliar que permite -Nos para especificar o número de comentarios 774 00:46:51,250 --> 00:46:53,020 que ir con un post especial. 775 00:46:53,020 --> 00:46:56,050 Entón, nós estamos indo a crear unha función auxiliar. 776 00:46:56,050 --> 00:46:58,020 >> Función 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 Así, unha secuencia de caracteres que especifica o número de comentarios que ir xunto con el. 780 00:47:07,180 --> 00:47:12,850 E o que nós imos facer é dicir que nun = esta comentarios contar. 781 00:47:12,850 --> 00:47:15,150 Entón, nós estamos indo a contar o número de comentarios. 782 00:47:15,150 --> 00:47:22,900 E se ese número é igual a 1, somos só vai voltar 1 comentario. 783 00:47:22,900 --> 00:47:28,890 E, a continuación, se non, queremos volver a concatenación de nun e comentarios, 784 00:47:28,890 --> 00:47:31,890 así que nós comezamos a pluralização correcta. 785 00:47:31,890 --> 00:47:33,380 Só ten que facer iso unha única cita. 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 Un comentario. 788 00:47:37,640 --> 00:47:41,140 >> E agora podemos acceder a esta función directamente dentro do noso punto de vista. 789 00:47:41,140 --> 00:47:44,510 Entón, se nós volver ao mensaxes parciais que creamos, 790 00:47:44,510 --> 00:47:49,370 agora queremos realmente amosar o número de comentarios. 791 00:47:49,370 --> 00:47:52,660 Entón, o que podemos facer é post, utilizar esta función 792 00:47:52,660 --> 00:47:57,230 que acabamos de crear a amosar o número de comentarios. 793 00:47:57,230 --> 00:48:00,440 Entón, se nós agora actualizar, el fai, de feito, display 794 00:48:00,440 --> 00:48:02,240 os comentarios número que ir xunto con el. 795 00:48:02,240 --> 00:48:05,320 >> Se quixésemos ser extravagante, se realmente ollar para o código de distribución, 796 00:48:05,320 --> 00:48:07,800 podemos realmente enlace isto para os comentarios. 797 00:48:07,800 --> 00:48:17,040 Se ben se lembran, nós definido dentro do ver que iso non ten comentarios sección de identificación. 798 00:48:17,040 --> 00:48:22,460 Entón, se nós realmente quería obrigar directamente á sección de comentarios, o que 799 00:48:22,460 --> 00:48:36,000 fariamos aquí é a href URL do viewPost ruta. 800 00:48:36,000 --> 00:48:40,550 Pase en ID matriz de post ID. 801 00:48:40,550 --> 00:48:46,140 E entón nós queremos ir especialmente a sección de comentarios. 802 00:48:46,140 --> 00:48:49,900 >> Aquí imos pechar a A etiqueta. 803 00:48:49,900 --> 00:48:52,950 Entón, agora, se actualiza esta páxina, prema sobre este asunto. 804 00:48:52,950 --> 00:48:54,700 Imos ir directamente a sección de comentarios. 805 00:48:54,700 --> 00:48:57,580 Se tivésemos un post máis longo, pode realmente ver este salto baixo. 806 00:48:57,580 --> 00:49:02,668 Pero vai entender que é non na parte superior da páxina. 807 00:49:02,668 --> 00:49:04,090 Con estilo. 808 00:49:04,090 --> 00:49:04,600 Óptimo. 809 00:49:04,600 --> 00:49:08,582 Entón iso é un moi sinxelo exemplo de algo sinxelo 810 00:49:08,582 --> 00:49:09,790 que pode facer con Laravel. 811 00:49:09,790 --> 00:49:13,230 >> Pero pode notar aquí que fixemos unha morea de cousas 812 00:49:13,230 --> 00:49:16,200 con bastante pequena cantidade de código. 813 00:49:16,200 --> 00:49:19,420 Laravel nos permite facer a Consultas SQL nos bastidores. 814 00:49:19,420 --> 00:49:21,960 Fai o saneamento para nós nos bastidores. 815 00:49:21,960 --> 00:49:25,940 Nos permite facer estas relacións moi facilmente, sen nós, precisando 816 00:49:25,940 --> 00:49:33,350 para facer calquera SQL xuntar declaracións á combinar observacións co que os postes. 817 00:49:33,350 --> 00:49:36,480 Permítenos facelo herdanza de modelos 818 00:49:36,480 --> 00:49:43,780 para que poidamos establecer estes nidificación arquivos por iso non nos estamos repetindo, 819 00:49:43,780 --> 00:49:47,020 así como cando tivemos que exhibición dos artigos do blog 820 00:49:47,020 --> 00:49:50,770 que non temos a copia e pega o código. 821 00:49:50,770 --> 00:49:55,450 >> E a partir de aquí pode construír aplicacións cada vez máis complicados. 822 00:49:55,450 --> 00:49:58,370 Podes imaxinar se quería aplicar log-in, 823 00:49:58,370 --> 00:50:05,532 poderiamos dicir, traer un terceiro estrutura que nos permite facelo. 824 00:50:05,532 --> 00:50:07,490 Hai unha morea deles que son moi, moi 825 00:50:07,490 --> 00:50:09,970 grande que pode facer, como, recuperación de contrasinal. 826 00:50:09,970 --> 00:50:14,450 E vai enviarlle unha axustar o contrasinal do correo electrónico. 827 00:50:14,450 --> 00:50:18,260 Podemos aplicar permiso para que eu poida crear un post, 828 00:50:18,260 --> 00:50:20,350 pero alguén non pode editalo. 829 00:50:20,350 --> 00:50:24,610 Podemos aplicar funcionalidade para borrar posts. 830 00:50:24,610 --> 00:50:28,160 >> Pero pode ver aquí que temos moito tanto todos os compoñentes rudimentarias 831 00:50:28,160 --> 00:50:31,640 para construír algúns realmente, realmente, aplicacións dinámicas e emocionantes web. 832 00:50:31,640 --> 00:50:34,035 Entón, con iso, eu creo que estamos ben. 833 00:50:34,035 --> 00:50:35,720 Tendes algunha dúbida? 834 00:50:35,720 --> 00:50:36,220 Si? 835 00:50:36,220 --> 00:50:38,090 >> COLUMNA 3: Como obter contido estático? 836 00:50:38,090 --> 00:50:39,256 >> ERIC Ouyang: O contido estático. 837 00:50:39,256 --> 00:50:45,520 Entón viu antes que cando tivemos isto aquí, este contido esquema, 838 00:50:45,520 --> 00:50:49,625 vista make, tivemos este sen esta matriz despois. 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index tivemos este como só un ficheiro estático. 841 00:50:59,152 --> 00:51:00,860 Entón, se nós non pasar nada xunto a el, 842 00:51:00,860 --> 00:51:03,340 iso só vai facer o HTML directamente. 843 00:51:03,340 --> 00:51:09,240 Pero se nós pasamos neste asociativa variedade de mensaxes, que é dinámicamente 844 00:51:09,240 --> 00:51:12,950 tirado dende a base de datos, nos pode facer a páxina dinámica. 845 00:51:12,950 --> 00:51:13,450 Con estilo. 846 00:51:13,450 --> 00:51:14,830 Algunha pregunta? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 COLUMNA 3: Como compararía Laravel para quizais algunhas outras opcións? 849 00:51:19,720 --> 00:51:20,525 ERIC Ouyang: Claro. 850 00:51:20,525 --> 00:51:21,025 Si. 851 00:51:21,025 --> 00:51:23,430 Entón Laravel é-- iso é un gran question-- 852 00:51:23,430 --> 00:51:26,190 unha das moitas opcións de frameworks web. 853 00:51:26,190 --> 00:51:31,160 Entón Ruby on Rails é un que é popular. 854 00:51:31,160 --> 00:51:34,590 Creo Twitter adoitaba ser aplicado con Ruby on Rails. 855 00:51:34,590 --> 00:51:37,600 Eu creo que desde conmutada. 856 00:51:37,600 --> 00:51:40,780 Hai outro chamado FuelPHP. 857 00:51:40,780 --> 00:51:46,120 >> Entón Ruby on Rails usa a linguaxe Ruby e aplica unha morea de cousas MVC 858 00:51:46,120 --> 00:51:48,200 que vemos aquí. 859 00:51:48,200 --> 00:51:52,320 FuelPHP é outro framework PHP. 860 00:51:52,320 --> 00:51:54,490 Django é un dos meus favoritos. 861 00:51:54,490 --> 00:51:57,010 É un framework web para Python. 862 00:51:57,010 --> 00:52:01,270 Así, pode escribir a súa aplicación web en Python. 863 00:52:01,270 --> 00:52:03,760 Polo tanto, hai unha tonelada de estas opcións. 864 00:52:03,760 --> 00:52:06,170 >> Laravel, eu creo que, dun modo grande é o meu dereito favorito 865 00:52:06,170 --> 00:52:08,232 agora para PHP só porque dos compoñentes 866 00:52:08,232 --> 00:52:09,440 que falamos anteriormente. 867 00:52:09,440 --> 00:52:11,910 É Composer habilitado. 868 00:52:11,910 --> 00:52:15,750 Inclúe un moi, moi sistema ORM expresivo. 869 00:52:15,750 --> 00:52:18,800 Tamén ten unha modelaxe realmente incrible lingua que algúns dos outros 870 00:52:18,800 --> 00:52:20,630 só non proporcionan. 871 00:52:20,630 --> 00:52:21,400 E migracións. 872 00:52:21,400 --> 00:52:23,432 As migracións son incribles. 873 00:52:23,432 --> 00:52:24,860 Legal? 874 00:52:24,860 --> 00:52:25,390 Impresionante. 875 00:52:25,390 --> 00:52:27,560 Ben, moitas grazas por asistir a este seminario, 876 00:52:27,560 --> 00:52:30,650 e boa sorte en proxectos finais. 877 00:52:30,650 --> 00:52:31,616